我使用perl来匹配bash脚本中的正则表达式的密码.
在测试正则表达式的密码时,我遇到了这个问题:
这有效:
perl -e 'if ( "Bomba\@2071" =~ /^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8,}$/ ) { print 1; } '
Run Code Online (Sandbox Code Playgroud)
虽然这永远不匹配:
perl -e 'if ( "Bomba@2071" =~ /^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8,}$/ ) { print 1; } '
Run Code Online (Sandbox Code Playgroud)
你可以注意到,它有效,因为我逃脱了@符号.我从来没有在其他编程语言中看到过这样的东西,经过一个多小时的坚持,我发现原因只是偶然.
所以,我的问题是,这是怎么回事?为什么我需要逃避像@这样的奇怪角色?
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |