首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果匹配某些标准,则从第二个捕获组中排除Regex

如果匹配某些标准,则从第二个捕获组中排除Regex
EN

Stack Overflow用户
提问于 2016-10-09 12:10:02
回答 2查看 121关注 0票数 0

到目前为止,我的准则是:

代码语言:javascript
复制
^(UCX_|UBX_|USP_)([A-Za-z0-9]\w+)(_\d+)?$

当我测试字符串时:

代码语言:javascript
复制
UCX_1maxi_holiday2_blah_343

它正确地测试了true,但是我的最后一个捕获组将永远无法到达,因为它也匹配第二个组。也就是说,如果最后一个下划线标定的部分是所有数字,我希望该部分在第三个捕获组中,而不是第二个。否则我想把它放在第二组。

我想到了帅哥和-behinds,我不认为他们会在这方面发挥作用,但我可能会感到惊讶。

我可以单独做一个单独的测试来检查字符串的结束,然后根据我的需要拆分字符串,但是我的好奇心很强。

我想知道是否有办法修改第二个捕获组,以阻止它在所有数字的情况下击打结尾

有人能用Regex JiuJitsu做这个吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-09 12:17:40

如果你把第二次捕获改为非贪婪,你就会得到你想要的。使用:

代码语言:javascript
复制
^(UCX_|UBX_|USP_)([A-Za-z0-9]\w+?)(_\d+)?$
票数 1
EN

Stack Overflow用户

发布于 2016-10-09 12:22:54

您可以简化这样做:

代码语言:javascript
复制
^(UCX_|UBX_|USP_)(\w+?)(_\d+)?$

\w字符是来自A、A、0-9的字符,包括_(下划线)字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39943464

复制
相关文章

相似问题

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