先読みアサーション(?=)に問題があります。たとえば、次の式があります。
/Win(?=2000)/
Win
式が、のようであれば、Win2000
一致しWin2000fgF
ます。次の表現があります:
^(?=.*\d)(?=.*[a-z]).*$
数字と小文字に一致します。例:45dF
、4Dd
。しかし、なぜそれが機能し、すべての文字と一致するのかわかりません:)以前の文字はありません(?=.*\d)
。私は、この式だけが機能するはずだと思います:
^.\*(?=.*\d)(?=.*[a-z]).*$
(\*
式の前に)。
説明してもらえますか?