【发布时间】:2020-08-14 12:34:07
【问题描述】:
我的字符串要求是 m+/-n.n。它将接受字符串 m 加(+)或减(-)任何整数或十进制数。即m+1、m+.1、n+0.1、m+1.1,与减号(-)类似。
我尝试了正则表达式模式'^(?:m|M)[+-](\\d{1,})?(\\.\\d{1,0})?$'
这里的问题是它也接受'm+'或'm-',这是不应该的。这里[+-]后面有两组,都是单独可选的,需要支持0.1、0.1、1、1.1。想要将这两组转换为一组并强制设置。
【问题讨论】:
-
您可以获得单个捕获组
[Mm][+-](\d*\.?\d+),它将匹配M+或m+,但它不是该组的一部分,并且该组不是可选的。 regex101.com/r/hUGUHq/1 -
应该只有 1 个强制组权限与
1.1.1等值匹配? -
如果有可能,为什么不呢?
-
我添加了一个使用强制单个捕获组的解决方案。阅读这个问题,我认为这是预期的结果。
标签: javascript regex regex-group