【发布时间】:2019-12-09 17:59:46
【问题描述】:
我有以下两个正则表达式。我的目标是提取“EX”之后的所有内容
示例 1:
(^[EX]{2})(\w+)
示例数据
EX12456
https://regex101.com/r/6QqHwf/13
匹配信息显示第 2 组是我想要的数据,并且与 SUBSTITUTION $2 匹配。
示例 2:
(?<=EX)(?s)(.*$)
示例数据
123456/stackoverflo@|EX789
https://regex101.com/r/6QqHwf/12
匹配信息显示第 1 组是我想要的数据,但与 SUBSTITUTION $1 不匹配。
如何在 SUBSTITUTION 中添加/输入日期“789”?谢谢!!!
【问题讨论】:
-
“替换”会删除匹配的内容,并忽略剩下的内容。您的原始正则表达式将匹配
EX并允许将其删除,但您的第二个正则表达式 not 匹配123456/stackoverflo@|EX,因此不会被删除。请改用.*(?<=EX)(?s)(.*$)- 这匹配字符串的第一部分并允许您将其删除。 Demo -
@NickReed 谢谢!!!!只是好奇,.* 是否意味着匹配直到 EX 的所有内容?
-
解释见答案;
.表示“任何字符”,*表示“0 次或多次” - 它匹配整个字符串,然后回溯以确保您的后向匹配。
标签: regex