这个正则表达式有什么问题-与勉强的量词有关吗?

丹·金|

有人知道为什么这在javascript中不起作用吗?(使用Chrome和Firefox尝试):

console.log('"my name is"'.match(/"?(.*?)"?/));

输出此:

[""", "", index: 0, input: ""my name is""] 

我期望这样:

[""my name is"", "my name is", index: 0, input: ""my name is""]

我对解决该问题的替代方法不感兴趣,而且对于我要实现的目标而言,它也不是一个完整的解决方案(我现在采用了稍微不同的方式)-我只是对比赛失败的原因感兴趣。

我希望勉强的量词能够匹配所有内容,但不包括最终报价。我不明白为什么表达式无法匹配任何内容?

聚苯乙烯

问题在于,模式中的所有内容(包括周围的引号)都是可选的。这意味着它将很容易匹配一个空字符串。那么正则表达式引擎内部发生了什么?

  • 引擎尝试匹配第一个"?没问题,它与"字符串中的第一个匹配
  • 引擎继续前进到模式的下一个部分.*?好吧,第一个之后的零长度子字符串"与此匹配,因此它继续。
  • 引擎继续前进到模式的最后一部分"?下一个字符是m,所以不匹配,但这没关系,因为最后一个"是可选的,因此不会被捕获。

因此,第一场比赛只是第一场比赛"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

这个正则表达式有什么问题?

这个正则表达式删除子字符串有什么问题?

这个正则表达式查找特定字母有什么问题?

蜂巢:这个正则表达式有什么问题?

这个Objective-C正则表达式有什么问题?

这个正则表达式有什么问题?JSLint抛出错误

这个黄瓜正则表达式有什么问题?

这个正则表达式的前瞻有什么问题?

此正则表达式有什么问题?

我的正则表达式有什么问题?

Java正则表达式有什么问题

这个正则表达式有什么问题?(可在regex101.com上使用)

这个Groovy表达式有什么问题?

正则表达式:grep“ [az] {2}” somename.txt有什么问题

GNU sed中的前瞻性正则表达式有什么问题?

在PHP中使用正则表达式验证输入数据有什么问题?

PHP preg_match_all-此正则表达式有什么问题?

我的正则表达式中的非捕获组有什么问题

正则表达式中此字符Á有什么问题?

我的正则表达式匹配整数有什么问题?

我的正则表达式在HTML输入中验证模式有什么问题?

我的正则表达式 /(?=^[az]+\d{2,})(?=\w{5,})/ 模式有什么问题?

R中的此正则表达式模式有什么问题?

我的 IP 地址正则表达式有什么问题?

Scala中的此正则表达式““” [\ b]“”。r有什么问题

此正则表达式有什么问题?(2)

我的split()及其正则表达式有什么问题?

我在R中的正则表达式有什么问题?

我的htaccess正则表达式有什么问题?