我想用正则表达式匹配两个密码。例如,我有两个输入 "123456" 和 "1234567",那么结果应该是不匹配 (false)。当我输入 "123456" 和 "123456" 时,结果应该匹配 (true)。
我无法制作出这个表达式。我该怎么做?
我无法制作出这个表达式。我该怎么做?
如果你有一个存储在变量中的输入密码并且想要精确匹配123456,那么锚点可以帮助你:
/^123456$/
在Perl中,匹配密码的测试大概是这样的:
print "MATCH_OK" if ($input_pass=~/^123456$/);
编辑:
bart kiers 是正确的,为什么不使用 strcmp() 来做这件事呢?每种语言都有它自己的方式。
另一方面,您可能希望考虑使用更安全的身份验证机制:)
\z
而不是$
。 /^123456$/
匹配123456
以及123456
后面跟随一个换行符,而/^123456\z/
仅匹配123456
。 - ikegami/\b123456\b/
\bhttp:\/\/www.foo.com\b
将匹配 http://www.foo.com=?http://www.foo.com
以及原始的 URL。第一个回答使用 ^
(开头)和 $
(结尾)是最好的方法,通过这些测试者:https://regex101.com 和 http://regexr.com(下面链接中包含的测试者不太友好,这些更好)。 - twknab(?<![\w\d])abc(?![\w\d])
这样做可以确保你的匹配项不会被某个字符、数字或下划线所前置,并且不会被紧随着一个字符、数字或下划线所跟随。
因此,它会在"abc","abc.","abc "中匹配"abc",但不匹配"4abc"和"abcde"。
\w
匹配数字和字母,因此[\w\d]
是多余的。 - Alan Mooreif string1 == string2
puts "match"
else
puts "not match"
end
string1 =~ /^123456$/
/\s+123456\s+/i
。这可能会有所帮助。re
有一个re.fullmatch
方法,比修改字符串更容易。你可以使用 JavaScript 字符串的 match 方法和正则表达式模式来匹配一个完全相同的字符串。
let str1 = '123456' ;
console.log(str1.match(/^123456$/)) ; //['123456', index: 0, input: '123456', groups: undefined]
console.log(str1.match(/^1234567$/)) ; //null