Python 参考re.sub.中的事件
我习惯于使用Python 参考re.sub.中的事件,python,regex,Python,Regex,我习惯于使用re.sub()替换字符串中的字母,但是只插入一些东西怎么样 import re re.sub('Item', '- <thing>', 'A list of things: \nItem 1 \nItem 2') 它并没有真正替代,而是插入了一些东西。这在正则表达式中真的是可能的吗?还是我应该继续循环整个文本并使用.replace()?我需要替换特定事物的模式,因此使用大量的。replace()似乎有点不雅观。为什么不直接使用第二个参数-Item >>&g
re.sub()
替换字符串中的字母,但是只插入一些东西怎么样
import re
re.sub('Item', '- <thing>', 'A list of things: \nItem 1 \nItem 2')
它并没有真正替代,而是插入了一些东西。这在正则表达式中真的是可能的吗?还是我应该继续循环整个文本并使用
.replace()
?我需要替换特定事物的模式,因此使用大量的。replace()
似乎有点不雅观。为什么不直接使用第二个参数-Item
>>> re.sub('Item', '- Item', 'A list of things: \nItem 1 \nItem 2')
'A list of things: \n- Item 1 \n- Item 2'
你在寻找“反向参考”。它们通常拼写为\X
,其中“X”是指您要返回的捕获组的编号(不过,如果您想更喜欢,也可以使用命名的捕获组)
以下是如何使代码正常工作:
re.sub(r'(Item)', r'- \1', 'A list of things: \nItem1, \nItem2')
这里有一种奇特的方式,适合那些喜欢奇特的人:
import re
re.sub('(?=Item)', '- ', 'A list of things: \nItem 1 \nItem 2')
#>>> 'A list of things: \n- Item 1 \n- Item 2'
这将搜索(?=Item)
,它是一个空字符串,后跟Item
,并将其替换为-
请注意,在现实生活中,应将其拼写为:
'A list of things: \nItem 1 \nItem 2'.replace('Item', '- Item')
尽管我认为这只是因为它过于简单。这段代码运行良好:
import re
text = re.sub(r'(Item)', '- \g<1>', 'A list of things: \nItem 1 \nItem 2')
print text
重新导入
text=re.sub(r'(项)',-\g',事物列表:\nItem 1\nItem 2')
打印文本
祝你好运
import re
text = re.sub(r'(Item)', '- \g<1>', 'A list of things: \nItem 1 \nItem 2')
print text