【发布时间】:2017-12-08 10:49:54
【问题描述】:
我想匹配以点开头的数字集,或者什么都不匹配。我想出了正则表达式(?:\.\d+)?。但是,它会匹配字符串.,即使\d 上的量词是一个加号。如果我去掉最后一个问号,我相信这会使该组成为可选的,因为没有前面的量词,那么它就可以正常工作。我在 JavaScript 中使用 RegExp 引擎,在这种情况下特别是 node.js。
这是我从测试中得到的:
-
.123,无可选:true -
.,无可选:false 空,无可选:false
.123,可选:true-
.,可选:true 空,可选:true
.123,预期:真-
.,预期:错误 - 空,预期:真
谢谢。
【问题讨论】:
-
您能否添加这些测试用例是否应该匹配(预期输出)。类似:.123,没有可选:true,应该匹配...
-
您将整个捕获组设为可选,这基本上就是您的表达方式。字符串上不需要出现任何内容(一切都是可选的),所以任何字符串都会出现。
-
/(\.\d+)/不够吗? (或者/\.(\d+)/,如果你不想捕获这个点?) -
@DanielBeck Ha 我刚刚在我的回答中添加了这一点,OP 肯定使事情过于复杂:P
标签: javascript regex