我想用正则表达式匹配两个密码.例如,我有两个输入"123456"和"1234567",那么结果应该不匹配(false).当我输入"123456"和"123456"时,结果应匹配(true).
我无法表达.任何人都可以帮助我.
use*_*419 152
如果你在一个变量中有一个输入密码,并且你想要完全匹配123456,那么锚点将帮助你:
/^123456$/
Run Code Online (Sandbox Code Playgroud)
在perl中,匹配密码的测试就像是
print "MATCH_OK" if ($input_pass=~/^123456$/);
Run Code Online (Sandbox Code Playgroud)
编辑:
巴特凯尔斯是对的,你为什么不使用strcmp()?每种语言都以自己的方式拥有它
作为第二个想法,您可能想要考虑更安全的身份验证机制:)
pra*_*eth 135
在malfaux的回答中,'^'和'$'用于检测文本的开头和结尾.
这些通常用于检测线的开始和结束.
然而,在这种情况下,这可能是正确的方法.
但如果你想匹配一个确切的单词,更优雅的方法是使用'\ b'.在这种情况下,下面的模式将匹配确切的短语'123456'.
/\b123456\B /
小智 27
(?<![\w\d])abc(?![\w\d])
Run Code Online (Sandbox Code Playgroud)
这可以确保您的匹配前面没有某个字符,数字或下划线,并且不会立即跟随字符或数字,或者下划线
所以它将匹配"abc","abc.","abc"中的"abc",但不匹配"4abc",也不匹配"abcde"
更直接的方法是检查是否相等
if string1 == string2
puts "match"
else
puts "not match"
end
Run Code Online (Sandbox Code Playgroud)
但是,如果你真的想坚持正则表达,
string1 =~ /^123456$/
Run Code Online (Sandbox Code Playgroud)