[英]Python reference to regex in parentheses
我有一个文本文件,如果它没有紧跟数字,则需要删除字母“ t”。
我正在尝试使用re.sub来做到这一点,我有这个:
f=open('File.txt').read()
g=f
g=re.sub('([^0-9])t','',g)
这标识了要正确删除的字母,但也删除了前面的字符。 如何在替换字符串中引用带括号的正则表达式? 谢谢!
请改用后向(或负向)。
g=re.sub('(?<=[^0-9])t','',g)
要么
g=re.sub('(?<![0-9])t','',g)
三种选择:
g=re.sub('([^0-9])t','\\1',g)
要么
g=re.sub('(?<=[^0-9])t','',g)
要么
g=re.sub('(?<![0-9])t','',g)
第一个选项是您要查找的内容,即对捕获的字符串的反向引用。 \\\\1
将引用第一个捕获的组。
环视环境不会占用字符,因此您无需将其换回。 在这里,我对第一个使用正向后看,对第二个使用负向后看。 那些字符不会占用其括号内的字符,因此您不会将[^0-9]
或[0-9]
替换字符。 最好使用它们,因为它可以防止重叠的匹配。
正向后方确保t
前面有一个非数字字符。 后面的负数可确保t
之前没有数字字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.