如何精确查找和替换

2024-09-29 09:30:59 发布

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

我有一个文本文件的内容非常像下面

十二

G10,11年

GO12公司

10,12年

我要做的是用“”替换所有的“G”,而不是将“GO”替换为“O”。你知道吗

我试图处理正则表达式,所以首先我要处理没有逗号的行

with open(file) as f:
for line in f:
if re.match(r"%s[0-9]+" % 'G', line):
    input = line.strip('G')

结果发现“G10,11\n”字符串也与regex模式匹配,这让我很困惑。你知道吗

我的陈述有什么错误吗,或者有什么更简单的方法来做这件事吗? 非常感谢


Tags: ingo内容forifaswithline
1条回答
网友
1楼 · 发布于 2024-09-29 09:30:59

你还有其他选择。直接翻译需求会得到:G(?!O),您可以用空字符串替换它。可以这样做:

line = re.sub(r"G(?!O)", "", line)

G匹配G(?!O)仅当下列字符不是O时匹配。你知道吗

您可能需要使用G(?=\d),来匹配G后跟一个数字。你知道吗

相关问题 更多 >