Regex 正在验证最后两个字符是否符合模式
我有一个字符串Regex 正在验证最后两个字符是否符合模式,regex,alphanumeric,Regex,Alphanumeric,我有一个字符串abcdefgh 我想检查最后两个字符是否为字母数字/字母表,但不是数字 i、 e.它可以以a1、1a、aa结尾,但不能以11 有没有能插手的regex大师 正则表达式应该为字符串返回以下结果 abcd-正确 abc1d-正确 abcd1-正确 abc12-错误这应该可以做到: ^.*(\d[a-zA-Z]|[a-zA-Z](\d|[a-zA-Z]))$ 意思是: ^ the beginning of the string .*
abcdefgh
我想检查最后两个字符是否为字母数字/字母表,但不是数字
i、 e.它可以以a1
、1a
、aa
结尾,但不能以11
有没有能插手的regex大师
正则表达式应该为字符串返回以下结果
abcd-正确
abc1d-正确
abcd1-正确
abc12-错误这应该可以做到:
^.*(\d[a-zA-Z]|[a-zA-Z](\d|[a-zA-Z]))$
意思是:
^ the beginning of the string
.* any character except \n (0 or more times)
(
\d[a-zA-Z] a digit (0-9) followed by any character of a to z, A to Z
| OR
[a-zA-Z] any character of a to z, A to Z followed by
(\d|[a-zA-Z]) a digit or any character of a to z, A to Z
)
$ end of the string
请注意,这将匹配整个字符串,而不仅仅是最后两个字符,这些字符位于您可以使用的匹配组中
^.*[A-Za-z].|.[A-Za-z]$
那么,一个字母和一个数字,或者一个数字和一个字母,或者两个字母
([a-zA-Z]\d|\d[a-zA-Z]|[a-zA-Z][a-zA-Z])$
根据您使用的正则表达式系统,您还可以使用字符类,例如:alpha:
,但这一类适用于所有字符类。某些正则表达式语法需要在括号和/或管道符号前面加反斜杠。您可以使用:
^.*([a-zA-Z]{2}|(\d[a-zA-Z])|([a-zA-Z]\d))$
说明:
这让人困惑:
11
是一个字母数字字符字符串。这是我奇怪的要求,虽然NN是字母数字的,但我不允许它。询问代码的问题必须证明在解决实际问题时付出了最小的努力,包括尝试的代码和遇到的问题否,这与aa
@PeterWestlake不匹配,你说得对。已修复。注意-(\d|[a-zA-Z])
=[\da-zA-Z]
。它通过a1、1a,但失败aa@MohammedRafeeq是的,但我编辑过。查看更新的答案。不,这与非数字匹配,例如a代码>@PeterWestlake我很清楚这一点。但这个问题非常不清楚。“数字”一词在问题中不存在。@SvenHohenstein同意它不清楚(除非/直到澄清,否则应关闭),但“字母数字”确实出现在问题中,这a代码>不是。@Dukeling是对的,但是11
是字母数字的,无效。