我有以下字符串
我只在9月12日至14日期间在这个地方工作。我将在明年5月10日至15日之间回来.
使用下面的regex,我能够捕获字符串所需的部分,即日期之前的一个月。
(\w+\s?)(\d{1,2}?)-(d{1,2})
此正则表达式返回2个完全匹配。
匹配1
火柴2
我想要的是使用regex替换在第3组之前插入第1组。虽然我有其他方法可以这样做,但我无法找到使用regex替换的方法。
我打算把它用在蟒蛇身上。
所需的输出应该如下所示。
我只在9月12日-September 14在这个地方工作。我将在明年5月10日至5月15日之间回来。
发布于 2018-10-12 02:41:12
你可以匹配
(\w+) ?(\d{1,2} ?-)(\d{1,2})
并将其替换为第一组、第二组、第一组(插入月份),然后是第三组:
\1 \2\1 \3
https://regex101.com/r/Zcqsr2/1
import re
str = 'I only work between September 12 -14 at this place. I will be back between May 10-15 next year.'
print(re.sub(r'(\w+) ?(\d{1,2} ?-)(\d{1,2})', r'\1 \2\1 \3', str))
https://stackoverflow.com/questions/52771393
复制相似问题