正则表达式量词有什么区别:.* 和 .*?
What is the difference of regex Quantifier: .* and .*?
对于正则表达式匹配 ^(?s).*?HOLIDAY.*?INN.*?EXPRESS.*?$
和 ^(?s).*HOLIDAY.*INN.*EXPRESS.*$
使用 .*?
而不是 .*
有什么好处?
换句话说,正则表达式量词的区别是什么:.*
和 .*?
*
是一个贪心量词,这意味着它将匹配尽可能多的字母。 *?
是一个非贪婪量词,它将匹配尽可能少的字母。
要了解这种情况下的区别,让我们看一下以下片段或正则表达式:HOLIDAY.*?INN
。在这一个中,.*?
将匹配字符串 HOLIDAY
和之后遇到的第一个 INN
之间的文本。如果没有 ?
,它可能会找到更远的 INN
。
对于正则表达式匹配 ^(?s).*?HOLIDAY.*?INN.*?EXPRESS.*?$
和 ^(?s).*HOLIDAY.*INN.*EXPRESS.*$
使用 .*?
而不是 .*
有什么好处?
换句话说,正则表达式量词的区别是什么:.*
和 .*?
*
是一个贪心量词,这意味着它将匹配尽可能多的字母。 *?
是一个非贪婪量词,它将匹配尽可能少的字母。
要了解这种情况下的区别,让我们看一下以下片段或正则表达式:HOLIDAY.*?INN
。在这一个中,.*?
将匹配字符串 HOLIDAY
和之后遇到的第一个 INN
之间的文本。如果没有 ?
,它可能会找到更远的 INN
。