2024-04-27 19:50:46 发布
网友
假设我有这样一个文件:
tata toto tata titi tata
如果我在做一个正则表达式,比如: ^(tata) (toto)?
^(tata) (toto)?
如果找到toto,我希望是\2=toto,否则是\2=foo
所以我想在输出中:
tata toto tata foo tata foo
正则表达式可以吗
一种方法是用tata foo替换任何非tata后跟toto的内容:
tata foo
tata
toto
import re; string = ''' tata toto tata titi tata ''' print (re.sub('^tata(?! toto$).*$', 'tata foo', string, 0, re.M))
输出:
您可以使用re.findall和循环来执行任何您喜欢的操作:
re.findall
import re string = ''' tata toto tata titi tata ''' expression = r'^(tata) ?(toto)?' output = '' for pair in re.findall(expression, string, re.M): if pair[1] == '': output += pair[0] + ' foo\n' else: output += pair[0] + ' ' + pair[1] + '\n' print(output)
如果您希望简化/修改/探索表达式,在regex101.com的右上面板中已经对其进行了解释。如果您愿意,还可以在this link中查看它如何与一些示例输入匹配
一种方法是用
tata foo
替换任何非tata
后跟toto
的内容:输出:
您可以使用
re.findall
和循环来执行任何您喜欢的操作:输出
如果您希望简化/修改/探索表达式,在regex101.com的右上面板中已经对其进行了解释。如果您愿意,还可以在this link中查看它如何与一些示例输入匹配
相关问题 更多 >
编程相关推荐