php中的正则表达式不匹配它应该在哪里

时间:2012-07-22 14:28:19

标签: php regex

我试图制作一个我使用php evolve的正则表达式,但是通过添加一个额外的单字符组,正则表达式不再找到任何匹配。

以前的版本是:

$pattern = '{\{[0-9]+[a-z][0,1][0,1]\}}';

匹配{010c10}或{009c10}等字符串。

然后我决定通过添加[0,1]字符来使字符串匹配进展,并按如下方式调整正则表达式:

$pattern = '{\{[0-9]+[a-z][0,1][0,1][0,1]\}}';

然而,正则表达式现在不再匹配像{010c100}这样的字符串 ,我真的不明白为什么。

2 个答案:

答案 0 :(得分:1)

// match short versions, such as {010c10}
$pattern = '/\{\d+[a-z][0,1]{2}\}/'; 

// match long versions, such as {010c100}
$pattern = '/\{\d+[a-z][0,1]{3}\}/'; 

// match short and/or long versions
$pattern = '/\{\d+[a-z][0,1]{2,3}\}/'; 

答案 1 :(得分:0)

使用此模式\{\d+[a-z][01]{3}\}