⑴ 大家好,幫我理解一下下面的幾個java里的正則表達式的意思在java的Pattern類里出來的
aaaax?bbbbb
? 限定 'x' 出現1次或0次 可匹配 "aaaaxbbbbb" 也可匹配 "aaaabbbbb"
--------------------------------
aaaax*bbbbb
* 限定 'x' 出現任意次 可匹配 "aaaabbbbb" 也可匹配 "aaaaxxxxxbbbbb" 也可匹配 "aaaaxxxxxxxxxxxxxxxbbbbb" 多少個 x 都行
--------------------------------
aaaax+bbbbb
+ 限定 'x' 出現1次或1次以上 可匹配 "aaaaxbbbbb" 也可匹配"aaaaxxxxxbbbbb" 也可匹配"aaaaxxxxxxxxxxxxbbbbb"多少個 x 都行,就不能沒有 'x'
--------------------------------
aaaax{3}bbbbb
{3} 限定 'x' 出現3次或3次以上 可匹配 "aaaaxxxbbbbb"
--------------------------------
aaaax{3,}bbbbb
{3,} 限定 'x' 出現3次 可匹配 "aaaaxxxbbbbb" 也可匹配"aaaaxxxxxbbbbb" 也可匹配"aaaaxxxxxxxxxxxxbbbbb"多少個 x 都行,就不能小於3次
--------------------------------
aaaax{3,5}bbbbb
{3,5} 限定 'x' 出現3次至5次 可匹配 "aaaaxxxbbbbb" 也可匹配"aaaaxxxxxbbbbb" 也可匹配"aaaaxxxxbbbbb" 不能小於3次,不能大於5次
--------------------------------
--------------------------------
--------------------------------
--------------------------------
--------------------------------
相信樓主能明白?, +, *, {n}, {n,}, {n,m} 的意思了
如果在限定符後邊再加上一個 ?
變成 ??, +?, *?, {n}?, {n,}?, {n,m}?
那麼它就是懶惰模式
不加的就是貪婪模式
比如有 原文: "----------AzzzzzzzzzzzzAxxxxxxxxxxA--------"
那麼 表達式 "A\w*A" 會匹配 "AzzzzzzzzzzzzAxxxxxxxxxxA" 這部分
那麼 表達式 "A\w*?A" 會匹配 "AzzzzzzzzzzzzA" 這部分
貪夢模式,盡可能多的匹配
懶惰模式,盡可能少的匹配