DMI*_*DMI 172
对于像.*
或的正则表达式.+
,附加一个问号(.*?
或.+?
)以匹配尽可能少的字符.(?:blah)?
除非绝对必要,否则可选择匹配某个部分但不匹配,请使用类似的内容(?:blah){0,1}?
.对于重复匹配(使用{n,}
或{n,m}
语法)附加问号以尝试尽可能少地匹配(例如{3,}?
或{5,7}?
).
关于正则表达式量词的文档也可能有所帮助.
Jon*_*han 36
非贪婪的运算符并不意味着最短的匹配:
abcabk
a.+?k
将匹配整个字符串(在此示例中)而不是仅匹配最后三个符号.
我想找到最小的可能匹配.
这是' a
'仍然允许所有匹配的最后一个可能的匹配k
.
我想这样做的唯一方法是使用如下表达式:
a[^a]+?k
Run Code Online (Sandbox Code Playgroud)