C# 正则表达式:获取除某些匹配字符串之外的所有内容

C# 正则表达式:获取除某些匹配字符串之外的所有内容,c#,regex,C#,Regex,你好 我对正则表达式很陌生,所以请耐心听我说 在我的系统中,我在一个网格中使用4个过滤器。 其中有三种是使用内置功能与某些潜台词进行简单匹配 e、 g 过滤器1:显示包含“F0”的所有内容 过滤器2:显示包含“P0”的所有内容 过滤器3:显示包含“D0”的所有内容 这些过滤器工作正常 我的问题是,我需要显示过滤器4(名为“其他”)中的所有其他内容。它可能是任何东西 我可以用正则表达式覆盖内置过滤,我正在考虑使用正则表达式查找不包含三段文本(“F0”、“P0”、“D0”)的所有内容。 此文本将始终

你好

我对正则表达式很陌生,所以请耐心听我说

在我的系统中,我在一个网格中使用4个过滤器。 其中有三种是使用内置功能与某些潜台词进行简单匹配 e、 g

  • 过滤器1:显示包含“F0”的所有内容
  • 过滤器2:显示包含“P0”的所有内容
  • 过滤器3:显示包含“D0”的所有内容
  • 这些过滤器工作正常

    我的问题是,我需要显示过滤器4(名为“其他”)中的所有其他内容。它可能是任何东西

    我可以用正则表达式覆盖内置过滤,我正在考虑使用正则表达式查找不包含三段文本(“F0”、“P0”、“D0”)的所有内容。 此文本将始终是单词的第四和第五个字母

    但这样的表情会是什么样子呢

    任何帮助都将不胜感激

    我能做的最好的事情就是下面,我试着消极地展望未来

    ^...(?!F0).*|^...(?!P0).*|^...(?!D0).*
    
    但这总是会产生一个真实的结果,因为这些是ORs,我需要和他们在一起

    示例数据:

    • EDMF01-不应选择
    • EDMF02-不应选择
    • EDMF03-不应选择
    • EDMP01-不应选择
    • EDMP02-不应选择
    • EDMD01-不应选择
    • EDMMIS-应选择
    • FXMMIS-应选择
    • 应选择JSEDTP
    • 应选择不包含“F0”、“P0”或“D0”的任何单词

      • 您需要使用单个

        ^...(?![FPD]0).*
        
        甚至

        ^.{3}(?![FPD]0)
        

        详细信息

        • ^
          -开始输入
        • ..
          /
          {3}
          -换行以外的任意3个字符
        • (?![FPD]0)
          -不允许在当前位置右侧紧跟
          F
          P
          D
        • *
          -除换行符以外的任何0+字符,尽可能多(如果您在
          Regex.IsMatch
          中使用模式,
          *
          是不必要的,因为该方法允许部分字符串匹配)

        您只是在尝试执行
        ^(?。*[DFP]0)。*