Javascript Can';我想不出是什么';RegExp问号是怎么回事
我想匹配前面有点的数字集,或者什么都不匹配。我提出了正则表达式Javascript Can';我想不出是什么';RegExp问号是怎么回事,javascript,regex,Javascript,Regex,我想匹配前面有点的数字集,或者什么都不匹配。我提出了正则表达式(?:\。\d+)。但是,它将匹配字符串,即使\d上的量词是加号。如果我去掉了最后一个问号,我相信这会使组成为可选的,因为没有前面的量词,那么它工作得很好。我在JavaScript中使用RegExp引擎,在本例中特别是node.js 以下是我从测试中得到的信息: .123,不带可选项:true ,不带可选项:false 空,不带可选项:false .123,带可选值:true ,可选:true 空,可选:true .123,应为:t
(?:\。\d+)
。但是,它将匹配字符串
,即使\d
上的量词是加号。如果我去掉了最后一个问号,我相信这会使组成为可选的,因为没有前面的量词,那么它工作得很好。我在JavaScript中使用RegExp引擎,在本例中特别是node.js
以下是我从测试中得到的信息:
,不带可选项:true.123
,不带可选项:false- 空,不带可选项:false
,带可选值:true.123
,可选:true- 空,可选:true
,应为:true.123
,应为:false- 空,应为:真
/^<your regex>$/
正则表达式将匹配任何非空字符串。使用
/^<your regex>$/
正则表达式将匹配任何非空字符串。您需要像这样向正则表达式添加^和$标记
^(?:\.\d+)?$
否则,它将在字符串中的任何一点匹配空字符串。您需要像这样向正则表达式中添加^和$标记
^(?:\.\d+)?$
否则它将在字符串中的任何一点匹配空字符串。您可以添加这些测试用例是否应该匹配(预期输出)。类似于:.123,不带optional:true,应该匹配……您将整个捕获组设置为可选,这基本上就是您的表达式。字符串上不需要显示任何内容(所有内容都是可选的),因此任何字符串都可以显示。难道
/(\。\d+)/
就足够了吗?(或者/\(\d+/
如果你不想抓住这个点?@DanielBeck Ha我刚刚在我的答案中添加了这一点,OP肯定是过度复杂化了:你可以添加这些测试用例是否应该匹配(预期输出)。类似于:.123,不带optional:true,应该匹配……您将整个捕获组设置为可选,这基本上就是您的表达式。字符串上不需要显示任何内容(所有内容都是可选的),因此任何字符串都可以显示。难道/(\。\d+)/
就足够了吗?(或者/\(\d+/
如果你不想抓住这个点?@DanielBeck Ha我刚刚在我的回答中添加了这一点,OP肯定是把事情复杂化了:但是,这是一个什么样的答案?@BoxTechy这是如何回答你的问题的?这仍然会匹配OP想要匹配的空字符串或一个点后跟一个或多个数字的
@Clonkex,这就是答案。@JordanGray哦,对了。我完全误解了这个问题。这个答案确实是正确的(实际上意味着我的答案是错误的)。@Clonkex没关系,正则表达式几乎和它们的编写一样难以描述!:)Wut,这算什么答案?@BoxTechy这怎么回答你的问题?这仍然会匹配OP想要匹配的空字符串或一个点后跟一个或多个数字的
@Clonkex,这就是答案。@JordanGray哦,对了。我完全误解了这个问题。这个答案确实是正确的(实际上意味着我的答案是错误的)。@Clonkex没关系,正则表达式几乎和它们的编写一样难以描述!:)<代码>/^(?:\.\d+)$/.test(“”)也将为真/^(?:\.\d+)$/.test(“”)
也将为真