ano*_*non 2 python regex io python-3.x
鉴于纺织品我怎样才能更换%开头的所有代币[].例如,在以下文本文件中:
Hi how are you?
I %am %fine.
Thanks %and %you
Run Code Online (Sandbox Code Playgroud)
我怎么能附上所有的字符%以[]:
Hi how are you?
I [am] [fine].
Thanks [and] [you]
Run Code Online (Sandbox Code Playgroud)
我试图先过滤掉令牌,然后更换它们,但也许有更多的pythonic方式:
with open('../file') as f:
s = str(f.readlines())
a_list = re.sub(r'(?<=\W)[$]\S*', s.replace('.',''))
a_list= set(a_list)
print(list(a_list))
Run Code Online (Sandbox Code Playgroud)
你可以用
re.sub(r'\B%(\w+)', r'[\1]', s)
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
细节
\B - 非字边界,必须在当前位置的左侧立即开始字符串或非字字符%- 一个%炭(\w+)- 第1组:任何1个或多个字符(字母,数字或_).(\S+)如有必要,替换为匹配1个或多个非空格字符,但注意\S也与标点符号匹配.import re
s = "Hi how are you? \nI %am %fine.\nThanks %and %you"
result = re.sub(r"\B%(\w+)", r"[\1]", s)
print(result)
Run Code Online (Sandbox Code Playgroud)