2009-09-08 48 views
0

这里是一个简短的正则表达式例子:正则表达式的问题 - 缺少比赛

preg_match_all('~(\s+|/)(\d{2})?\s*–\s*(\d{2})?$~u', 'i love regex 00–/ 03–08', $matches); 
print_r($matches); 

正则表达式只匹配'03 -08' ,但我的目的是匹配'00 - ”为好。问题是什么?任何人都能解释?你只能有空格和/或可选的两个您的匹配和字符串的结尾之间的数字

-\s*(\d{2})?$~u 

方式:

回答

2

末的部分。这意味着00-不能匹配,因为它和字符串的末尾之间还有其他东西。

如果您删除$,它应该按照您的意图工作。

+0

那个$从哪里来的?????谢谢你,亚当。我不敢相信我犯了这样一个愚蠢的错误。那$是坐在那里,我根本没注意到它! – Ree 2009-09-08 18:22:37