我有一个文本文件,其内容非常类似于
G12
G10,11
GO12
GO10,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”字符串也与正则表达式相匹配,这让我感到困惑。
我的陈述是否有任何问题,或者有更简单的方法吗? 非常感谢,
答案 0 :(得分:4)
你有一些选择。直接翻译您的要求可以获得:G(?!O)
,您可以用空字符串替换它。可以这样做:
line = re.sub(r"G(?!O)", "", line)
仅当以下字符不是G
时, G
才匹配(?!O)
,O
匹配。
您可能希望使用G(?=\d)
来匹配G
后跟数字。