使用正则表达式匹配HTML 下各种标签

时间:2021-04-07 05:39:16

http://www.oschina.net/question/195686_46313

 

<title>标题</title>

<title>
标题
</title>

我自己写的正则表达式是  "<title>.*?</title>" (没有双引号)  只能匹配第一种,,但是不能匹配第二种,,有没有好的正则表达式匹配类似第二种这样换行的标签

 

试试这个

<title>[\s\S]*?</title>

 

---------------------

php版的 /<title>.*?</title>/m

--------------------------

$pattern = '/<title>([\S\s]*?)<\/title>/';

-----------------------------

 

//正则提取,匹配次数
$match_nums =preg_match_all('/<title>([\S\s]*?)<\/title>/',$article, $matchs);
//匹配项是一个二维数组
//echo print_r($matchs);
//返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。
if($match_nums == 0 || $match_nums == FALSE ){
//没有匹配就原样返回
return array();
}

//第一个是完整匹配,第二个匹配就是去掉title标签的纯文本
$title = $matchs[1][0];