Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使未指定多行,php也会替换每一行_Php_Regex - Fatal编程技术网

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

即使未指定多行,php也会替换每一行,php,regex,Php,Regex,我使用以下方法提取选项卡描述的文本字符串的第一行: $column_pattern = "/(.*?)\r\n/"; preg_match($pattern, $tsv, $columns); print_r($columns[0]); 这将成功打印文本字符串的第一行。然而,我想删除它,所以我有这之后的每一行。然而这 $rows = preg_replace($column_pattern, "", $tsv); echo $rows; 替换字符串中的每一行。但是我没有在正则表达式中使用多行

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

$column_pattern = "/(.*?)\r\n/";
preg_match($pattern, $tsv, $columns);
print_r($columns[0]);
这将成功打印文本字符串的第一行。然而,我想删除它,所以我有这之后的每一行。然而这

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

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

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

多行
并不是指您所认为的那样<代码>多行仅意味着行开始/结束定位点
^
$
与由换行符分隔的每一行匹配

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