Eri*_*tes 9 php regex validation perl md5
最近用PHP编程,我以为我有一个有效的Perl正则表达式但是当我按照我想要的方式检查它时,它没有用.
什么是正确的表达式来检查某个东西是否是MD5(32位十六进制的az和0-9).
目前,我有 /^[a-z0-9]{32}$/i
Ali*_*xel 34
MD5:
/^[0-9a-f]{32}$/i
Run Code Online (Sandbox Code Playgroud)
SHA-1:
/^[0-9a-f]{40}$/i
Run Code Online (Sandbox Code Playgroud)
MD5 或 SHA-1:
/^[0-9a-f]{32}(?:[0-9a-f]{8})?$/i
Run Code Online (Sandbox Code Playgroud)
此外,大多数哈希值始终以小写十六进制方式显示,因此您可能需要考虑删除i修饰符.
顺便说一句,十六进制表示基数16:
0 1 2 3 4 5 6 7 8 9 A B C D E F = base 16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 = base 10
Run Code Online (Sandbox Code Playgroud)
因此,您可以看到它仅从0到F,十进制(或基数10)的相同方式仅从0到9.
那么,需要考虑的重点是$可以匹配的事实\n.因此:
E:\> perl -e "$x = qq{1\n}; print qq{OK\n} if $x =~ /^1$/"
OK
哎呀!
因此,正确的模式是:
/^[[:xdigit:]]{32}\z/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8369 次 |
| 最近记录: |