正确expression一个词的完全匹配
我想用正则expression式匹配两个密码。 例如我有两个input“123456”和“1234567”,那么结果应该是不匹配(假)。 当我input“123456”和“123456”时,结果应该匹配(true)。
我无法expression。 任何人都可以帮助我吗?
如果你在一个variables中有一个input密码,并且你想正好匹配123456,那么锚会帮你:
/^123456$/
在Perl中,匹配密码的testing会是类似的
print "MATCH_OK" if ($input_pass=~/^123456$/);
编辑:
巴特尔是正确的寿,为什么不使用strcmp()这个? 每种语言都有自己的方式
作为第二个想法,你可能想考虑一个更安全的authentication机制:)
在malfaux的答案'^'和'$'已被用来检测文本的开始和结束。
这些通常用于检测行的开始和结束。
但是,在这种情况下,这可能是正确的方法。
但是如果你想匹配一个确切的词,更优雅的方式是使用'\ b' 。 在这种情况下,以下模式将匹配确切的短语“123456”。
/ \ b123456 \ B /
(?<![\w\d])abc(?![\w\d])
这可以确保您的匹配没有被某个字符,数字或下划线开头,并且不会立即跟随字符或数字或下划线
所以它会匹配“abc”,“abc”,“abc”中的“abc”,而不是“abc”,也不匹配“abcde”
更直接的方法是检查平等
if string1 == string2 puts "match" else puts "not match" end
然而,如果你真的想坚持正则expression式,
string1 =~ /^123456$/
您也可以尝试在关键字的开头和结尾添加空格: /\s+123456\s+/i
。