【问题标题】:Regex with backslashes not working in preg_match_all带有反斜杠的正则表达式在 preg_match_all 中不起作用
【发布时间】:2015-09-23 17:43:16
【问题描述】:

我正在尝试获取细分名称(有时可以包含空格)但是我不断收到错误

警告:为 foreach() 提供的参数无效

我知道我当前的正则表达式不支持我也需要帮助的空格,但我认为反斜杠是在 preg_match_all 中破坏它的原因

$line = "WORK ORDERS\Subdivision Subdivision\Sec. 64\72751401_123 street dr.pdf"
$ptn2 = "/\\[a-zA-Z]+\\/";
preg_match_all($ptn2, $line, $matches2, PREG_SET_ORDER);

【问题讨论】:

    标签: php regex preg-match-all


    【解决方案1】:

    添加了\h 以匹配水平空格。

    $ptn2 = '~\\[a-zA-Z\h]+\\~';
    preg_match_all($ptn2, $line, $matches2, PREG_SET_ORDER);
    

    DEMO

    【讨论】:

    • 我让它与 $ptn2 = '/\\\[a-zA-Z\h]+\\\\/'; 一起使用
    • 单引号或双引号应该不是这里的问题,而是缺少水平空间。没有空格,无论引号如何,正则表达式都不会匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2010-11-01
    • 2012-06-01
    • 1970-01-01
    相关资源
    最近更新 更多