【发布时间】:2016-09-05 09:50:21
【问题描述】:
对于正则表达式匹配^(?s).*?HOLIDAY.*?INN.*?EXPRESS.*?$ 和^(?s).*HOLIDAY.*INN.*EXPRESS.*$ 使用.*? 代替.* 有什么好处?
换句话说,正则表达式量词有什么区别:.*和.*?
【问题讨论】:
-
点星号问号 (.*?) 告诉正则表达式引擎:“匹配任何字符,零次或多次,尽可能少”。引擎将从匹配零个字符开始,然后,因为它无法返回匹配项(因为没有找到“WORD 2”),它会再匹配一个字符,然后再匹配一个,以此类推。点表示任何东西都可以放在这里,星号表示至少 0 次,所以
.*接受任何字符序列,包括空字符串。
标签: regex string string-matching