有一个字符串
str="科技回复<a href='www.aaa.com'>服务</a>的功课的客服<a href='www.aaa.com'>汽车服务</a>各方的服务价格"
我想要的是
str=str.relace("服务","ss");
把服务替换成ss   但是  我想要的是a标记中的服务2字不被替换掉
最终结果为
str=="科技回复<a href='www.aaa.com'>服务</a>的功课的客服<a href='www.aaa.com'>汽车服务</a>各方的ss价格"

解决方案 »

  1.   

    用正则替换了.str="科技回复 <a href='www.aaa.com'>服务 </a>的功课的客服 <a href='www.aaa.com'>汽车服务 </a>各方的服务价格" 
    str=Regex.Relace(str,"服务(?!\s*</a>)","ss");
      

  2.   

    str=Regex.Relace(str,"服务(?!\\\\s* </a>)","ss");
      

  3.   

    上面才对,(?!\\\\s* </a>) 顺序否定环视,匹配服务后面的位置,</a>没有出现,才能匹配成功
      

  4.   

    str=str.relace("服务价格","ss价格"); 
      

  5.   

    str="科技回复 <a href='www.aaa.com'>服务 </a>的功课的客服 <a href='www.aaa.com'>汽车服务 </a>各方的服务价格" 
    str=Regex.Replace(str,"服务(?!(.*?/a>))","ss");
      

  6.   


                string str = "科技回复 <a href='www.aaa.com'> 服务 </a>的功服务 <a href='www.aaa.com'>汽车服务 </a>各方的服务价格";
                str=Regex.Replace(str,"(?<!<a[^>]*>[^<]*)服务(?![^<]*</a>)","ss");