我有問題,看起來斷言(?=)。例如,我有表達:正則表達式 - lookahead斷言
/Win(?=2000)/
它匹配Win
,如果表達式類似Win2000
,Win2000fgF
。我有下一個表達式:
^(?=.*\d)(?=.*[a-z]).*$
它匹配位數和小寫字母,例如:45dF
,4Dd
。但我不知道,爲什麼它的作品和匹配所有字符:)我沒有字符,這是在(?=.*\d)
之前。我認爲,只有這種表達應該工作:
^.\*(?=.*\d)(?=.*[a-z]).*$
(與\*
表達之前)。
你能解釋一下嗎?
感謝您的好解釋。你能告訴我,爲什麼^(?=。* \ d)(?=。* [a-z])$(最後沒有。*)不適用於2a?這個正則表達式應該匹配嗎? – luk4443 2010-09-26 16:12:20
好吧,想象你離開第10步 - 正則表達式引擎仍處於位置0,所以它無法匹配'$'。 – 2010-09-26 16:17:57
好的,謝謝:) – luk4443 2010-09-26 16:49:01