首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配正则表达式中的匹配项之间的空格

问匹配正则表达式中的匹配项之间的空格
EN

Stack Overflow用户
提问于 2020-03-17 12:05:30
回答 1查看 43关注 0票数 0

我需要在正则表达式中匹配空格和后续匹配的帮助。

示例如下:

我希望匹配以下所有场景:

代码语言:javascript
复制
60 ml ( 1)
60ML (2 )
60ml(2) (a)

我使用的正则表达式是:

代码语言:javascript
复制
(60\s?(?:ml)\s?(?:\w|\(.{0,3}\)){0,5})

链接到示例:link to regex

正则表达式匹配前两个示例,但不匹配(2)和(a)之间有空格的实例。

任何指导都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-17 12:18:11

在上一个示例中,您的正则表达式不允许在带括号的组(2)和(a)之间使用空格。您可以将<space>*添加到其中以允许它这样做。注除非一次只匹配一个值,否则不能使用\s*,否则\s将匹配换行符的事实可能会导致第一次匹配走得太远。

代码语言:javascript
复制
(60\s?ml\s?(?:\w|\(.{0,3}\) *){0,5})

请注意,如果没有锚点,计算重复是没有意义的。例如,此正则表达式将同时匹配60ML (2 )(a)(a)(a)(a)和60ML (2 )(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a),在这两种情况下都返回60ML (2 )(a)(a)(a)(a)。如果这不是您想要的,那么您将需要在正则表达式的末尾添加一个锚点(可能是$),以防止它与更长的字符串匹配。

Demo on regex101

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

https://stackoverflow.com/questions/60716114

复制
相关文章

相似问题

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