我想用正则表达式匹配两个密码。例如,我有两个输入“123456”和“1234567”,那么结果应该是不匹配(假)。当我输入“123456”和“123456”时,结果应该是匹配(真)。我不会表达。我该怎么做?
dy1byipe1#
如果你有一个输入密码在一个变量,你想完全匹配123456然后锚将帮助你:
/^123456$/
在perl中,匹配密码的测试如下所示:
print "MATCH_OK" if ($input_pass=~/^123456$/);
编辑:bart kiers是对的,为什么不使用strcmp()呢?每种语言都有自己的方式作为第二个想法,你可能想考虑一个更安全的认证机制:)
wgxvkvu92#
在malfaux的答案中,'^'和'$'被用来检测文本的开头和结尾。这些通常用于检测一行的开始和结束。但在这种情况下,这可能是正确的方法。但是如果你想匹配一个确切的单词,更优雅的方法是使用'\b'。在这种情况下,下面的模式将匹配确切的短语'123456'。/\b123456\b/
btqmn9zl3#
(?<![\w\d])abc(?![\w\d])
这可确保匹配项前面没有字符、数字或下划线,后面也没有字符、数字或下划线因此它将匹配“abc”、“abc."、“abc“中的“abc”,但不匹配“4abc”或“abcde”
iyr7buue4#
更直接的方法是检查是否相等
if string1 == string2 puts "match" else puts "not match" end
但是,如果您真想坚持使用正则表达式,
string1 =~ /^123456$/
ni65a41a5#
您也可以尝试在关键字的开头和结尾添加一个空格:/\s+123456\s+/i .
/\s+123456\s+/i
2jcobegt6#
如果您使用Python,re有一个re.fullmatch方法,比修改字符串更容易
re
re.fullmatch
qmb5sa227#
通过使用JavaScript字符串的match方法和正则表达式模式,可以将精确字符串与JavaScript匹配
let str1 = '123456' ; console.log(str1.match(/^123456$/)) ; //['123456', index: 0, input: '123456', groups: undefined] console.log(str1.match(/^1234567$/)) ; //null
7条答案
按热度按时间dy1byipe1#
如果你有一个输入密码在一个变量,你想完全匹配123456然后锚将帮助你:
在perl中,匹配密码的测试如下所示:
编辑:
bart kiers是对的,为什么不使用strcmp()呢?每种语言都有自己的方式
作为第二个想法,你可能想考虑一个更安全的认证机制:)
wgxvkvu92#
在malfaux的答案中,'^'和'$'被用来检测文本的开头和结尾。
这些通常用于检测一行的开始和结束。
但在这种情况下,这可能是正确的方法。
但是如果你想匹配一个确切的单词,更优雅的方法是使用'\b'。在这种情况下,下面的模式将匹配确切的短语'123456'。
/\b123456\b/
btqmn9zl3#
这可确保匹配项前面没有字符、数字或下划线,后面也没有字符、数字或下划线
因此它将匹配“abc”、“abc."、“abc“中的“abc”,但不匹配“4abc”或“abcde”
iyr7buue4#
更直接的方法是检查是否相等
但是,如果您真想坚持使用正则表达式,
ni65a41a5#
您也可以尝试在关键字的开头和结尾添加一个空格:
/\s+123456\s+/i
.2jcobegt6#
如果您使用Python,
re
有一个re.fullmatch
方法,比修改字符串更容易qmb5sa227#
通过使用JavaScript字符串的match方法和正则表达式模式,可以将精确字符串与JavaScript匹配