我有问题,看起来断言(?=)。例如,我有表达:正则表达式 - 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