正确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