即使未指定多行,php也会替换每一行

时间:2013-10-15 14:52:42

标签: php regex

我使用以下方法提取标签描述文本字符串的第一行:

$column_pattern = "/(.*?)\r\n/";
preg_match($pattern, $tsv, $columns);
print_r($columns[0]);

这会成功打印文本字符串的第一行。但是,我想删除它,所以我在此后的所有行。不过这个

$rows = preg_replace($column_pattern, "", $tsv);
echo $rows;

替换字符串中的每一行。但我没有在正则表达式中使用多行标志。为什么会这样?

2 个答案:

答案 0 :(得分:1)

多行表示匹配可以跨越多行,而不是仅查看第一行行。

答案 1 :(得分:1)

MULTiLINE并不代表您的想法。 MULTiLINE只是意味着每个以换行符分隔的行匹配行开头/结尾定位符^$

preg_replace将尽可能多次应用替换字符串(找到匹配项)。