首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从选定的Regex组替换Regex

从选定的Regex组替换Regex
EN

Stack Overflow用户
提问于 2018-10-12 02:34:51
回答 1查看 33关注 0票数 0

我有以下字符串

我只在9月12日至14日期间在这个地方工作。我将在明年5月10日至15日之间回来.

使用下面的regex,我能够捕获字符串所需的部分,即日期之前的一个月。

(\w+\s?)(\d{1,2}?)-(d{1,2})

此正则表达式返回2个完全匹配。

匹配1

  • 全场比赛:9月12日-14日
  • 集团1:9月
  • 集团2:12
  • 集团3:14

火柴2

  • 全场比赛:5月10日-15日
  • 集团1:五月
  • 集团2:10
  • 集团3:15

我想要的是使用regex替换在第3组之前插入第1组。虽然我有其他方法可以这样做,但我无法找到使用regex替换的方法。

我打算把它用在蟒蛇身上。

所需的输出应该如下所示。

我只在9月12日-September 14在这个地方工作。我将在明年5月10日至5月15日之间回来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-12 02:41:12

你可以匹配

代码语言:javascript
运行
复制
(\w+) ?(\d{1,2} ?-)(\d{1,2})

并将其替换为第一组、第二组、第一组(插入月份),然后是第三组:

代码语言:javascript
运行
复制
\1 \2\1 \3

https://regex101.com/r/Zcqsr2/1

代码语言:javascript
运行
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52771393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档