在正则表达式的基本语法中,有如下规定:

. 匹配除换行符(\n、\r)之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用像"(.|\n)"的模式。

* 匹配前面的子表达式零次或多次。例如,zo 能匹配 "z" 以及 "zoo"。 等价于{0,}。

? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。

表达式 .* 就是单个字符匹配任意次,即贪婪匹配。 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配。

*限定符是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

比如:<H1>MyBatis框架</H1>

使用/<.*>/匹配的结果为:H1>MyBatis框架</H1。

使用/<.*?>/匹配结果为:H1。

标签: none

添加新评论