验证最后两个字符以遵循模式

时间:2014-01-21 11:35:21

标签: regex alphanumeric

我有一个字符串abcdefgh

我想检查最后两个字符是字母数字/字母而不是数字

即。它可以a11aaa但不是11

结尾

有没有可以筹码的正则表达专家

正则表达式应返回字符串

的以下结果

abcd - 是的 abc1d - 是的 abcd1 - 是的 abc12 - 假

4 个答案:

答案 0 :(得分:2)

这应该这样做:

^.*(\d[a-zA-Z]|[a-zA-Z](\d|[a-zA-Z]))$

Online regex tool demo here

含义:

^                       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)

您可以使用

^.*[A-Za-z].|.[A-Za-z]$

Online test

答案 3 :(得分:0)

您可以使用:

^.*([a-zA-Z]{2}|(\d[a-zA-Z])|([a-zA-Z]\d))$

<强> DEMO

<强>说明

enter image description here