正则表达式检查字符串是一定的长度

时间:2010-03-21 11:55:27

标签: regex string

我正在尝试编写一个正则表达式来匹配成对的卡(AA, KK, QQ ... 22),我有正则表达式([AKQJT2-9])\1。我遇到的问题是这个正则表达式将匹配AA以及AAbc等。有没有办法编写正则表达式,以便我可以指定我想匹配([AKQJT2-9])\1并且只有那个(即之后不再有字符)。

2 个答案:

答案 0 :(得分:5)

将正则表达式括在^$

^([AKQJT2-9])\1$

^是“字符串开始”锚点,$是“字符串结束”锚点。如果您的正则表达式支持它,\A\Z可能是更好的选择,因为^$也可以匹配多行字符串中行的开头/结尾,取决于您的正则表达式引擎和配置。

答案 1 :(得分:3)

你的意思是,像这样?

^([AKQJT2-9])\1$

只有在字符串为“AA”,“KK”,...

时才会匹配

如果要捕获两个字符,而不是字符串的其余部分,则必须使用另一个括号

($match,$unused) = $string ~= (([AKQJT2-9])\2); # in perl