繁体   English   中英

Python括号中对正则表达式的引用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM