标签: regex
我指的是正则表达式备忘单。 它说
{3,5}表示3,4,and 5
{3,5}
3,4,and 5
{3,5}?表示3,4,5 ungreedy +
{3,5}?
3,4,5
ungreedy +表示什么?
ungreedy +
答案 0 :(得分:10)
quanitifier {3,5}?意味着它将首先尝试匹配3个匹配项,然后查看表达式的其余部分是否匹配。如果表达式的其余部分失败,它将回溯并尝试4,最后是5。
贪婪的版本{3,5}将以相反的顺序尝试匹配 - 最长的匹配。
请注意,贪婪不会影响字符串是否匹配。它只影响引擎执行搜索的顺序,以及捕获组的捕获内容。
这是一个展示差异的例子。想象一下,你有字符串aaaaabc。
aaaaabc
(a{3,5})(\w*)
aaaaa
bc
(a{3,5}?)(\w*)
aaa
aabc