如何搜索文本文件并将其替换为包含字符?

2024-06-01 12:38:10 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个textile,我如何替换在[]开头有%的所有标记。例如,在以下文本文件中:

Hi how are you? 
I %am %fine.
Thanks %and %you

如何用%[]将所有字符括起来:

Hi how are you? 
I [am] [fine].
Thanks [and] [you]

我试着先过滤代币,然后再替换它们,但也许有一种更像Python的方法:

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))

Tags: and方法标记youhiam字符are
1条回答
网友
1楼 · 发布于 2024-06-01 12:38:10

你可以用

re.sub(r'\B%(\w+)', r'[\1]', s)

参见regex demo

细节

  • \B-一个非单词边界,当前位置的左边必须有字符串开头或非单词字符
  • %-a%字符
  • (\w+)-第1组:任何一个或多个单词字符(字母、数字或_)。如果需要,替换为(\S+)以匹配1个或多个非空白字符,但请注意\S也匹配标点符号。你知道吗

Python demo

import re

s = "Hi how are you? \nI %am %fine.\nThanks %and %you"
result = re.sub(r"\B%(\w+)", r"[\1]", s)
print(result)

相关问题 更多 >