java中正则匹配的贪婪模式和非贪婪模式

贪婪模式和非贪婪模式指的是在正则匹配过程中的行为,在贪婪模式下,匹配最长的匹配值。非贪婪模式下,匹配最短的匹配值。

不是所有的NFA都支持非贪婪模式匹配。

JAVA的Pattern支持贪婪和非贪婪模式,通过不同的表达式来区分:

贪婪模式的书写方式有:

X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{ n} X,恰好 n 次 X{ n,} X,至少 n 次 X{ n,m} X,至少 n 次,但是不超过 m 次

非贪婪模式的书写方式有:

X?? X,一次或一次也没有 X*? X,零次或多次 X+? X,一次或多次 X{ n}? X,恰好 n 次 X{ n,}? X,至少 n 次 X{ n,m}? X,至少 n 次,但是不超过 m 次

经验分享 程序员 微信小程序 职场和发展