比如:
1.CSDN是中国一个网站
2.CSDN是个垃圾网站
3.CSDN是个超级无聊的网站
4.CSDN是个技术网站
5.CSDN是程序员的大本营要求:
1.必须要包含“CSDN”和“网站”这个关键词。
2.可以有“技术”或“程序员”这两个关键词。
3.不能有“垃圾”或“无聊”这两个关键词。

解决方案 »

  1.   

    IsMatch("^((CSDN)|(网站))+$") && IsMatch("^((技术)|(程序员))*$") && (!IsMatch("^((垃圾)|(无聊))+$"))
      

  2.   

    我佩服你的逻辑你的要求实际上就两个
    1.必须要包含“CSDN”和“网站”这个关键词。
    3.不能有“垃圾”或“无聊”这两个关键词。不用正则了,直接用Contant..
      

  3.   


    ^(?!.*?(垃圾|无聊))(?=.*?CSDN{1,})(?=.*?网站{1,}).+$
      

  4.   


    (?is)(?=^[^垃圾|无聊]*$)(?=.*?CSDN)(?=.*?网站).*
      

  5.   

    不对头,因为我上面举例的这些文本都是在一大段HTML块中,
      

  6.   


    "(?im)^(?=.*?(CSDN|网站))(?!.*?(垃圾|无聊)).*"
      

  7.   

    这个"(?im)^(?=.*?(CSDN))(?=.*?(网站))(?!.*?(垃圾|无聊)).*"