贪婪和非贪婪模式"/>
正则的贪婪和非贪婪模式
在正则表达式中,贪婪(greedy)和非贪婪(non-greedy)指的是匹配操作的行为方式。
贪婪匹配是指尽可能多地匹配字符,以满足整个正则表达式的匹配条件。它会尽量匹配更长的字符串,而不是满足最小的匹配要求。
贪婪匹配使用 * 和 + 量词来表示
。
- 例如,给定正则表达式
a.*b
和字符串abcbdb
,贪婪匹配会尽量匹配更长的字符串,即从第一个a
开始,一直匹配到最后一个b
,得到的匹配结果是abcb
。
非贪婪匹配是指尽可能少地匹配字符,以满足整个正则表达式的匹配条件。它会尽量匹配更短的字符串,而不是尽可能多的匹配。
非贪婪匹配使用 *? 和 +? 量词来表示
。
- 例如,给定正则表达式
a.*?b
和字符串abcbdb
,非贪婪匹配会尽量匹配更短的字符串,即从第一个a
开始,只匹配到第一个满足条件的b
,得到的匹配结果是ab
。
在正则表达式中,可以通过在量词后面添加 ?
来表示非贪婪匹配。例如,*?
表示非贪婪的零次或多次重复,+?
表示非贪婪的一次或多次重复。
更多推荐
正则的贪婪和非贪婪模式
发布评论