【问题标题】:PHP REGEX preg_match_all every line after a particular linePHP REGEX preg_match_all 特定行之后的每一行
【发布时间】:2011-04-04 23:26:42
【问题描述】:

这是带有我的正则表达式和代码的示例字符串:

$str = "Supp Fees:
----------
Oral Glucose
Glucagon
OXYGEN";

$ptn = "/----------(?:\r\n(.+))+/m";
preg_match_all($ptn,$str,$matches);

echo"<pre>";
print_r($matches);
echo"</pre>";

我正在尝试匹配“----------”之后的每一行,上面的模式只返回第一行(口服葡萄糖)。我可以重复 '\r\n(.+)' 部分并返回另一行,但不知道会有多少行。

谢谢!

【问题讨论】:

    标签: php regex preg-match-all


    【解决方案1】:

    你可以在没有正则表达式的情况下做到这一点:

    $data = substr($str, strpos($str, '----------') + 10);
    $matches = explode("\r\n", $data);
    

    【讨论】:

    • 你的意思是不使用正则表达式解决字符串问题!>!>!>!?!大声笑,很有趣,我最近一直在使用 REGEX,我什至没有考虑使用 php 函数。谢谢。
    【解决方案2】:
    <?php
    
    $str = "Supp Fees:
    ----------
    Oral Glucose
    Glucagon
    OXYGEN";
    
    
    $str = explode('----------', $str);
    preg_match_all("/[^\r\n].*/", $str[1], $matches);
    
    echo"<pre>";
    print_r($matches);
    echo"</pre>";
    
    ?>
    

    ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 2021-10-25
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多