正则表达式里面 .* 和 .*? 有什么区别?
表达式 .* 就是单个字符匹配任意次,即贪婪匹配。
表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.
\s 匹配任何空白非打印字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白非打印字符。等价于 [^ \f\n\r\t\v]。
*限定符是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
比如:<H1>Chapter 1 - 介绍正则表达式</H1>
使用/<.*>/匹配的结果为:H1>Chapter 1 - 介绍正则表达式</H1。
使用/<.*?>/匹配结果为:H1。