如下代码,期待匹配的数字1234567
,实际匹配的是数字7
|
|
在贪婪匹配下,.*
或匹配尽可能多的字符。正则表达式中.*
后面是\d+
,也就是至少一个数字,并没有指定具体多少个数字,因此.*
就尽可能匹配多的字符。
在做匹配时,字符串中间尽量使用非贪婪匹配,也就是用.*?
来代替.*
以免出现匹配结果缺失的情况:
|
|
.*?
如果在字符串结尾,就可能匹配不到任何内容了,因为他会匹配尽可能少的字符。
|
|
如下代码,期待匹配的数字1234567
,实际匹配的是数字7
|
|
在贪婪匹配下,.*
或匹配尽可能多的字符。正则表达式中.*
后面是\d+
,也就是至少一个数字,并没有指定具体多少个数字,因此.*
就尽可能匹配多的字符。
在做匹配时,字符串中间尽量使用非贪婪匹配,也就是用.*?
来代替.*
以免出现匹配结果缺失的情况:
|
|
.*?
如果在字符串结尾,就可能匹配不到任何内容了,因为他会匹配尽可能少的字符。
|
|