1
鑑於此正則表達式:爪哇正則表達式possesive量詞
x[^x]*+x
和該輸入字符串匹配:
xbbbx
結果是匹配的文本xbbbx
開始於索引0和索引5
但是,通過只更改最後一個字母x
到Z
在正則表達式和字符串,我們得到這個正則表達式:
x[^x]*+Z
這種輸入字符串:
xbbbZ
,其結果是:沒有找到匹配。
爲什麼單個字母的變化會產生這種行爲變化?
鑑於此正則表達式:爪哇正則表達式possesive量詞
x[^x]*+x
和該輸入字符串匹配:
xbbbx
結果是匹配的文本xbbbx
開始於索引0和索引5
但是,通過只更改最後一個字母x
到Z
在正則表達式和字符串,我們得到這個正則表達式:
x[^x]*+Z
這種輸入字符串:
xbbbZ
,其結果是:沒有找到匹配。
爲什麼單個字母的變化會產生這種行爲變化?
你之所以使用「所有格」量詞來儘可能匹配符號。
所以在這種情況下,xbbbZ
正則表達式x[^x]*+
匹配所有非x字符,直到行結束,它停止。它已經消耗了輸入xbbbZ
內的「Z」。
此正則表達式,x[^x]*+x
,工程用xbbbx
因爲「佔有慾」量詞有停止當它達到一個x
。你的輸入最後有一個x
,因此佔有量詞停止。這允許正則表達式x
的最後部分與x
匹配。
在Java tutorial page的末尾,您可以看到佔有量詞的另一個示例。