给定一个纺织品,我如何替换 []
的所有以 %
开头的标记。例如在以下文本文件中:
Hi how are you?
I %am %fine.
Thanks %and %you
如何用 []
将所有带有 %
的字符括起来:
Hi how are you?
I [am] [fine].
Thanks [and] [you]
我尝试先过滤标记然后替换它们,但也许有更 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))
最佳答案
你可以使用
re.sub(r'\B%(\w+)', r'[\1]', s)
参见 regex demo
详情
\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)
关于python - 如何搜索并用封闭的字符替换文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53320881/