任何人都可以告訴我什麼「?=」使用正則表達式嗎? 下面是代碼片段,我試圖破譯的一個例子:「?=」在正則表達式中做什麼?
password.matches("(?=.*\\d.*\\d.*)^[\\w]{8}.*$");
感謝。
任何人都可以告訴我什麼「?=」使用正則表達式嗎? 下面是代碼片段,我試圖破譯的一個例子:「?=」在正則表達式中做什麼?
password.matches("(?=.*\\d.*\\d.*)^[\\w]{8}.*$");
感謝。
這是一個positive lookahead。在這個特殊的表達中,它是說你的密碼必須至少有兩位數(\d
)。
另請注意,前瞻不會消耗輸入,它只是一個斷言。
例如,在你的正則表達式,先行部分((?=.*\\d.*\\d.*)
)聲稱,您的password
包含至少兩個數字和表達式的其餘部分消耗整個字符串,並嘗試匹配至少8字字符(即, [a-zA-Z_0-9]
)在字符串的開頭。
這是一個前瞻:一個零寬度匹配,用於檢查位置是否跟隨給定表達式。
http://www.regular-expressions.info/lookaround.html
在您的情況,您正在尋找一個字符串:
向前看並不是匹配的一部分。它的行爲很像字邊界(\b
)或字符串開頭(^
)。
https://www.google.com/search?q=question+mark+equals+regex ...並點擊[第一擊](http://www.regular-expressions.info/lookaround.html )。 – 2012-08-08 21:47:15