匹配关键字“百度”要求此关键字只有不出现在a标签内才匹配如下:<a href="baidu.com">百度</a>            //不能匹配因为出现在了a标签内
<a href=baidu.com >   百度 </a>         //不能匹配因为出现在了a标签内
<a href="baidu.com" >   中国百度好 </a >//不能匹配因为出现在了a标签内
请问 百度好吗?//可以匹配,因为其外边没有A标签

解决方案 »

  1.   

    我自己写了一个反向和正向的预搜索,但不行如下:
    我之所以用[\s\S]来匹配是因为有时候A标签和结束语A标签之间的内容有可能有换行(?<!<a[^<]*>[\s\S]*?)(百度)(?![\s\S]*?<\/a>)
      

  2.   

    先删除是好办法,不过,我的程序要求,还必须恢复, ?? 这个不知什么意思@<a[^ <]*>(.*?)<\/a>@  把(.*?)里的用其它字符全替换掉, 再扫描关键字,
      

  3.   


    你也可以用正则匹配html的标签, 唯独不匹配a的
      

  4.   

    呵呵  1.匹配<a>.百度..</a>   2.要不都匹配出来 再过滤一下 (这样不好)