我需要在正则表达式中匹配空格和后续匹配的帮助。
示例如下:
我希望匹配以下所有场景:
60 ml ( 1)
60ML (2 )
60ml(2) (a)我使用的正则表达式是:
(60\s?(?:ml)\s?(?:\w|\(.{0,3}\)){0,5})链接到示例:link to regex
正则表达式匹配前两个示例,但不匹配(2)和(a)之间有空格的实例。
任何指导都将不胜感激。
发布于 2020-03-17 12:18:11
在上一个示例中,您的正则表达式不允许在带括号的组(2)和(a)之间使用空格。您可以将<space>*添加到其中以允许它这样做。注除非一次只匹配一个值,否则不能使用\s*,否则\s将匹配换行符的事实可能会导致第一次匹配走得太远。
(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)。如果这不是您想要的,那么您将需要在正则表达式的末尾添加一个锚点(可能是$),以防止它与更长的字符串匹配。
https://stackoverflow.com/questions/60716114
复制相似问题