2024-03-29 09:47:39 发布
网友
我有一个文本文件,如果字母“t”前面没有数字,就需要删除它。你知道吗
我试着用回复sub我有这个:
f=open('File.txt').read() g=f g=re.sub('([^0-9])t','',g)
这将标识要正确删除的字母,但也会删除前面的字符。如何引用替换字符串中带圆括号的正则表达式? 谢谢!你知道吗
改为使用lookback(或negative lookback)。你知道吗
g=re.sub('(?<=[^0-9])t','',g)
或者
g=re.sub('(?<![0-9])t','',g)
三种选择:
g=re.sub('([^0-9])t','\\1',g)
第一个选项是您要查找的内容,即对捕获的字符串的反向引用。\\1将引用第一个捕获的组。你知道吗
\\1
Lookarounds不使用字符,因此不需要将它们替换回来。在这里,我对第一个使用了积极的向后看,对第二个使用了消极的向后看。它们不会使用括号中的字符,因此您不会在替换中使用[^0-9]或[0-9]。最好使用它们,因为它可以防止重叠匹配。你知道吗
[^0-9]
[0-9]
正查找确保t前面有一个非数字字符。负lookback确保t前面没有数字字符。你知道吗
t
改为使用lookback(或negative lookback)。你知道吗
或者
三种选择:
或者
或者
第一个选项是您要查找的内容,即对捕获的字符串的反向引用。
\\1
将引用第一个捕获的组。你知道吗Lookarounds不使用字符,因此不需要将它们替换回来。在这里,我对第一个使用了积极的向后看,对第二个使用了消极的向后看。它们不会使用括号中的字符,因此您不会在替换中使用
[^0-9]
或[0-9]
。最好使用它们,因为它可以防止重叠匹配。你知道吗正查找确保
t
前面有一个非数字字符。负lookback确保t
前面没有数字字符。你知道吗相关问题 更多 >
编程相关推荐