本文目录一览:
php 正则 匹配换行符的问题
“.”在正则里确实是不会匹配换行符的。
说它是通配符,有点名不符实。
如果你想要匹配包括换行符的所有字符的话,就用类似:[\w\W]或者[\s\S]这样的“全通配模式”;
你以上的代码,写成如下样式,就OK了:
$str="div你好
111
/div";
$reg="/div([\w\W]*?)\/div/";
preg_match_all($reg,$str,$str_arr);
var_dump($str_arr);
正则是一门不大不小的学问,需要下一定的功夫在它身上。
php 正则 匹配换行符
1. preg_match('/^(.*)(?:\r?\n){2,}(.*)$/s', $str, $s_arr);
2. split ('(?:\r?\n){2,}', $str);
php正则表达式匹配一段中文,中间有换行,空白,应该怎么写
有多种处理方法:
1、使用[\s\S]匹配任意字符,而不是使用“.”
2、使用s单行修饰模式,例:$pattern = '#abc.*?def#s'; //能匹配abc换行def
3、使用\s*匹配换行和空格,php里\s能匹配空白字符,含换行
php里的中文使用 [\x7f-\xff]表示,因此,使用正则:
$pattern = '#[\x7f-\xff]+(?:\s*[\x7f-\xff]+)*#'; 即可