- ?的第一个用法,匹配0次或1次。
- ?第二个含义,作为正则的懒惰模式。
- 正则有两种模式,一种为贪婪模式(默认),另外一种为懒惰模式,以下为例:
- (abc)dfe(gh)
- 对上面这个字符串使用(.*)将会匹配整个字符串,因为正则默认是尽可能多的匹配。
- 虽然(abc)满足我们的表达式,但是(abc)dfe(gh)也同样满足,所以正则会匹配多的那个。
- 如果我们只想匹配(abc)和(gh)就需要用到以下的表达式
- (.*?)
- 在重复元字符*或者+后面跟一个?,作用就是在满足的条件下尽可能少匹配。
- 参考资料:http://www.jb51.net/article/16829.htm