正则表达式,用于单词中特定的字母和数字计数。

时间:2014-05-19 13:31:41

标签: regex perl

在文件中,我必须获取一个字符串,其中包含5个字母,后跟5个数字。 一些例子:TSDMN12345 TSDRD34526 PSSTN84586

请帮助我如何匹配这些。

3 个答案:

答案 0 :(得分:1)

尝试:

   if($str=~/^[a-zA-Z]{5}\d{5}$/){
       ...
    }

说明:

^ - 字符串的开头

[a-zA-Z]{5} - 大概或小写的5个英文字符

\d{5} - 在0到9之间显示5位数

$ - 字符串结尾

答案 1 :(得分:1)

您需要字符类(对于“任何字母”和“任意数字”),然后您需要指定要匹配的出现次数。

/^
  [[:alpha:]]{5} # 5 letters
  \d{5}          # 5 digits
$/x

(注意,最后的x只允许我们使用任意空格来使我们的正则表达式更清晰)

或者,根据您的示例数据,您只关心大写ASCII字母,在这种情况下,您可以选择更简单的

/^[A-Z]{5}\d{5}$/

Perl文档包含我强烈推荐的perlrequickperlretut

答案 2 :(得分:-1)

您可以将字符串与:

匹配

"^[a-zA-Z]{5}\d{5}$"