正则表达式 提取 html 标签的内容


<span style=''>内容</span><img src=".."/>内容<p><input .../>内容</p>

只提取里面的 “内容”
如果第一个有就提取第一个,如果第一个内容不存在就提取第二个“内容”,以此类推,不提取标签! 麻烦各位了!

第1个回答  2013-02-08
string str = File.ReadAllText("D:\\1.txt", Encoding.Default);
str = Regex.Match(str, @"(?is)(?<=>)[^<>]+(?=<)").Value;
Console.WriteLine(str);追问

请问下 ?是什么意思呢? 和 刚学习这东西 感觉难!

还有这个表达式对 语句出现在 标签外面不起作用 比如: 好东西好东西

就是标签外面的匹配不到? 该如何改呢

第2个回答  2013-02-07
/<.*?>(.+)<\/.*?>/
不过只针对同级标签,嵌套不适用
第3个回答  推荐于2017-08-28
$html = '<span style=''>内容1</span><img src=".."/>内容2<p><input .../>内容3</p>';

preg_match("/<.+?>(.+?)<.+?>/", $html, $content);
echo $content[1];
//以上是PHP中的做法本回答被网友采纳
第4个回答  2013-02-08
$html = '<span style=''>内容1</span><img src=".."/>内容2<p><input .../>内容3</p>';

preg_match("/<.+?>(.+?)<.+?>/", $html, $content);
echo $content[1];
//以上是PHP中的做法本回答被网友采纳
相似回答