我正在尝试使用Python和re.sub来替换之前匹配的字符串。基本例子:
由此:
Cat_A
SomeStuff
Cat_B
SomeStuff
Cat_C
SomeStuff
对此:
Cat_A
Cat_A
Cat_B
Cat_A
Cat_C
Cat_A
但是当我尝试使用re.sub时,我遇到了某种操作数错误。
谢谢!
编辑:
好的,所以我的问题确实不准确,所以这里有一个基于我真正要实现的目标的例子。 我有这样的输出:
6500_1#show ip arp vrf A
Protocol Address Age (min)
Internet 1.1.1.1 -
Internet 1.1.1.2 0
Internet 1.1.1.3 0
Internet 1.1.1.4 -
6500_1#show ip arp vrf B
Protocol Address Age (min)
Internet 2.2.2.1 0
Internet 2.2.2.2 -
我想用之前的vrf名称替换“Internet”字,得到类似的内容:
6500_1#show ip arp vrf A
Protocol Address Age (min)
vrf A 1.1.1.1 -
vrf A 1.1.1.2 0
vrf A 1.1.1.3 0
vrf A 1.1.1.4 -
6500_1#show ip arp vrf B
Protocol Address Age (min)
vrf B 2.2.2.1 0
vrf B 2.2.2.2 -
我想为此使用re.sub,但是我无法为替换部件推出正则表达式。
答案 0 :(得分:1)
假设您在问题文本中输入了拼写错误,并根据您的问题标题回答,这将起作用:
import re
s = '''Cat_A
SomeStuff
Cat_B
SomeStuff
Cat_C
SomeStuff'''
s = re.sub(r'(Cat_\w)\s*(\w*)', r'\1\n \1', s)
print(s)