正则表达式测试字符串的字符长度

时间:2011-05-20 21:58:07

标签: regex

如何使用正则表达式测试字符串的长度?

例如,如果字符串只包含1个字符,我如何匹配?

4 个答案:

答案 0 :(得分:3)

^.$

但是大多数框架都包含将返回字符串长度的方法,你应该使用它而不是正则表达式。

答案 1 :(得分:3)

锚定到字符串的开头和结尾并匹配一个字符。在许多语言中:

^.{1}$

在Ruby的正则表达式中:

\A.{1}\z

答案 2 :(得分:1)

匹配单个字符(使用Perl正则表达式):

/\A.\z/s

\A表示“字符串的开头”,.表示“任意字符”,\z表示“字符串的结尾”。如果没有\A\z,您将匹配任何超过一个字符的字符串。

编辑:但实际上你应该做的事情是:

if( length($string) == 1 ) {
  ...
}

(以Perl为例)

Edit2:以前我有/^.$/但是,正如Seth指出的那样,这允许匹配两个字符长的字符串,其中最后一个字符是\n\A...\z构造修复了该问题。

答案 3 :(得分:0)

/^.\z/s

以上需要perl兼容的regexp。诀窍是/^.$/可能匹配“x”和“x \ n”。添加/ s修饰符对那里没有帮助。