2013-01-11 85 views
0

我是上帝在正则表达式可怕的,我只是不明白他们,我会感谢任何人的帮助。preg_match两个字母,五个数字,两个字母

我需要能够匹配两个A-Z字符,然后再匹配五个0-9个字符,然后是两个A-Z字符。一个例子是AB12345CD

我得到这个匹配五个数字(^[0-9]{5}$),但只是重复这不起作用,我觉得真的很愚蠢,无法弄清楚。

预先感谢您。

+0

“match”是什么意思?检查一个字符串是否符合表达式?在更长的文本中找到这样的字符串? – georg

+0

@ thg435这就是正则表达式所做的 - match/expression/in/text_to_search/... – foundry

回答

5

那就试试这个:

(^[A-Z]{2}[0-9]{5}[A-Z]{2}$) 
+0

为什么'()'? – georg

+0

几秒钟后:( – Diego

+0

@ thg435他提到他用括号得到了什么,所以我认为他用某种方法或某种方式调用了这个函数 – mpaepper

7

最简单的理解,最长写

[A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][A-Z][A-Z] 

短:

[A-Z]{2}[0-9]{5}[A-Z]{2} 

唯一完整的生产线:

^[A-Z]{2}[0-9]{5}[A-Z]{2}$ //^- start of line; $ - end of line 

拍摄中的括号:

(^[A-Z]{2}[0-9]{5}[A-Z]{2}$) // as per mpaepper, for reuse in matched expression 

时间更短:

(^[A-Z]{2}\d{5}[A-Z]{2}$)  // \d represents 0-9 
1

你可以尝试这样的事:

[A-Z]{2}[0-9]{5}[A-Z]{2} 

这里是表达的向下突破:

[A-Z] # Match a single character present in the list below 
       # A character in the range between “A” and “Z” 
    {2}   # Exactly 2 times 
[0-9]  # Match a single character in the range between “0” and “9” 
    {5}   # Exactly 5 times 

或者你可以尝试如下

[A-Z]{2}\d{5}[A-Z]{2}

希望这将有助于。

+0

OP不要求小写。 –

+0

ohhk ....我用大写更新了它。 – Workonphp

+0

这有助于为我分解它。 \ d是什么? –