【发布时间】:2009-09-08 14:13:01
【问题描述】:
这是一个简短的正则表达式示例:
preg_match_all('~(\s+|/)(\d{2})?\s*–\s*(\d{2})?$~u', 'i love regex 00– / 03–08', $matches);
print_r($matches);
正则表达式仅匹配“03–08”,但我的意图也是匹配“00–”。问题是什么?谁能解释一下?
【问题讨论】:
这是一个简短的正则表达式示例:
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
意味着您的匹配项和字符串结尾之间只能有空格和/或可选的两位数。这意味着00- 无法匹配,因为它和字符串末尾之间还有其他内容。
如果您删除 $,它应该可以正常工作。
【讨论】: