代码之家  ›  专栏  ›  技术社区  ›  Ree

regex问题-缺少匹配项

  •  0
  • Ree  · 技术社区  · 15 年前

    下面是一个简短的regex示例:

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

    regex只匹配“03_“08”,但我的意图也是匹配“00_”。有什么问题?有人能解释吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Adam Bellaire    15 年前

    末端部分:

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

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

    如果你移除 $ 它应该按你的意愿工作。