我想用正则表达式匹配两个密码。例如,我有两个输入“ 123456”和“ 1234567”,那么结果应该不匹配(假)。当我输入“ 123456”和“ 123456”时,结果应该匹配(正确)。我无法表达。我该怎么做?
3 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
如果您在变量中输入了密码,并且想精确匹配123456,那么锚点将为您提供帮助:
/^123456$/
在perl中,匹配密码的测试类似于
print "MATCH_OK" if ($input_pass=~/^123456$/);
编辑:
巴特·基尔斯(Bart kiers)是正确的,为什么不为此使用strcmp()?每种语言都有它自己的方式
第二个想法,您可能需要考虑一种更安全的身份验证机制:)
幕布斯7119047
TA贡献1794条经验 获得超8个赞
在malfaux的答案中,“ ^”和“ $”已用于检测文本的开头和结尾。
这些通常用于检测行的开始和结束。
但是,在这种情况下,这可能是正确的方法。
但是,如果您想匹配一个确切的单词,则更优雅的方法是使用'\ b'。在这种情况下,以下模式将与确切的短语“ 123456”匹配。
/ \ b123456 \ b /
吃鸡游戏
TA贡献1829条经验 获得超7个赞
(?<![\w\d])abc(?![\w\d])
这样可以确保您的匹配项前面没有字符,数字或下划线,并且后面没有字符,数字或下划线
因此它将匹配“ abc”,“ abc。”,“ abc”中的“ abc”,但不匹配“ 4abc”或“ abcde”
- 3 回答
- 0 关注
- 2675 浏览
添加回答
举报
0/150
提交
取消