【发布时间】:2017-08-14 20:53:12
【问题描述】:
以下只是我创建的一个简单示例。
string = 'I love sleeping. I love singing. I love dancing.'
pattern =re.compile(r'I love (\w+)\.')
我只想用 re.sub 替换 (\w+) 部分。
这个问题分为两部分:
我想替换 (\w+),而不必求助于组 捕获文本的其余部分。
所以我不想做这样的事情:
pattern =re.compile(r'(I) (love) (\w+)\.')
re.sub(pattern, r'/1 /2 swimming', string)
因为在处理大量文本和 可选组。
第二部分:
由于我将有三个匹配项,是否可以使用 re.sub 输入一个列表,该列表将遍历每个匹配项的列表并生成 sub
因此。换句话说,
我希望列表['Swimming, Eating, Jogging'] 的每个项目与
匹配,(如方法 zip)并进行替换。
所以输出应该是这样的(即使是单个总输出也可以:
'I love Swimming'
'I love Eating'
'I love Jogging'
【问题讨论】:
-
您为什么要单独捕获事物而不是
r'(I love )\w+\.'以及什么对您的用例不起作用?第二个你就不能按期分开吗?