【问题标题】:Regex problem - missing matches正则表达式问题 - 缺少匹配项
【发布时间】: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–”。问题是什么?谁能解释一下?

【问题讨论】:

    标签: php regex pcre


    【解决方案1】:

    最后的部分:

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

    意味着您的匹配项和字符串结尾之间只能有空格和/或可选的两位数。这意味着00- 无法匹配,因为它和字符串末尾之间还有其他内容。

    如果您删除 $,它应该可以正常工作。

    【讨论】:

    • 那美元是从哪里来的??????谢谢你,亚当。我不敢相信我犯了这么愚蠢的错误。那美元就在那里,我根本没有注意到它!
    猜你喜欢
    • 2021-11-29
    • 2011-07-17
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多