luk*_*443 9 regex regex-lookarounds
我有先行断言(?=)的问题.例如,我有表达式:
/Win(?=2000)/
Run Code Online (Sandbox Code Playgroud)
它匹配Win,如果表达式是Win2000,Win2000fgF.我有下一个表达式:
^(?=.*\d)(?=.*[a-z]).*$
Run Code Online (Sandbox Code Playgroud)
它匹配数字和小写字母,例如:45dF,4Dd.但我不知道,为什么它的工作和匹配所有字符:)我没有字符,这是以前(?=.*\d).我想,只有这个表达式应该有效:
^.\*(?=.*\d)(?=.*[a-z]).*$
Run Code Online (Sandbox Code Playgroud)
(\*在表达之前).
你能解释一下吗?
Tim*_*ker 39
假设我们是正则表达式引擎并将正则表达式^(?=.*\d)(?=.*[a-z]).*$应用于字符串2a.
从位置0开始(在第一个字符之前):
^:确保我们在字符串的开头:好的(?=:让我们检查以下正则表达式是否匹配.......*:匹配任意数量的字符 - > 2a.好.\d:不,我们已经结束了.让我们回到一个字符:a- >不,不匹配.回去另一个:2- >匹配!):前瞻,比赛成功.我们还在 0号位置!(?=:让我们检查以下正则表达式是否匹配.......*:匹配任意数量的字符 - > 2a.好.[a-z]:不,我们已经结束了.让我们回到一个角色:a- >匹配!):前瞻,比赛成功.我们还在 0号位置!.*:匹配任意数量的字符 - > 2a- >匹配!$:让我们看看 - 我们在字符串的末尾吗?是的我们是! - >比赛!| 归档时间: |
|
| 查看次数: |
8096 次 |
| 最近记录: |