我有一个字符串abcdefgh
,
我想检查最后两个字符是字母数字/字母而不是数字
即。它可以a1
,1a
,aa
但不是11
有没有可以筹码的正则表达专家
正则表达式应返回字符串
的以下结果abcd - 是的 abc1d - 是的 abcd1 - 是的 abc12 - 假
答案 0 :(得分:2)
这应该这样做:
^.*(\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
请注意,这与整个字符串匹配,不仅是最后两个字符,而是匹配组一个。
答案 1 :(得分:1)
那么,一个字母和一个数字,或一个数字和一个字母,还是两个字母?
([a-zA-Z]\d|\d[a-zA-Z]|[a-zA-Z][a-zA-Z])$
根据您正在使用的正则表达式系统,您还可以使用:alpha:
等字符类,但这一个适用于所有这些类。一些正则表达式语法需要在括号和/或管道符号前面加一个反斜杠。
答案 2 :(得分:0)
答案 3 :(得分:0)