我需要提取 html 代码中非 A 标签的内容应该怎么写?也就是所有">"和"<"之间的内容,但是跳过<a...>之间的内容
<div>123<a href="#" title="abc" target="_blank">456</a>789<br/>hello</div>
比如上面这段 HTML,除了 A 标签之间的"456"不提取,其他的"123"、"789"、"hello"都提取出来
|  |      1wangchonglie      2018-08-16 08:59:56 +08:00 我提供一个方法,第一步先将<a>xx</a>的字段找出来,然后替换掉为一个新的标签,最后再匹配>(.*?)<中的内容就可以提取到你想要的内容了。抛砖引玉,期待别人更好的回答。 | 
|  |      2yangg      2018-08-16 09:19:02 +08:00 什么语言,最好直接用 bs, pyquery 或者 cheerio 之类的 | 
|      3JmmBite      2018-08-16 09:34:43 +08:00  3 `([^<>]+?)<(?!\/a)` | 
|      4IssacTomatoTan      2018-08-16 09:34:45 +08:00 via Android /[^>]+(?=<\/a>)/ | 
|  |      5des      2018-08-16 09:42:52 +08:00 via Android 后排说一句,HTML 很有可能碰到不标准的,不建议用正则来匹配 | 
|  |      6rabbbit      2018-08-16 09:47:54 +08:00 先把<a></a>去掉再匹配,因为 a 标签里可能有别的东西,例如 <p>DIV<a>AAA<b>BBB</b>CCC</a>DIV</p> | 
|  |      7aqtata OP 感谢各位大佬相助,已经解决。其实匹配所有标签也行,程序中判断一下就可以。如果完全靠正则可以用 3 楼朋友的,测试可行。 | 
|  |      8zhaogaz      2018-08-16 10:09:02 +08:00 印象中 应该是要用 零宽断言 用不用贪婪 需要看你匹配到哪个  </a>了 |