Regex 匹配除空行或仅包含空格的行之外的所有内容

Regex 匹配除空行或仅包含空格的行之外的所有内容,regex,invert,Regex,Invert,匹配符合以下规则的所有行的最简单方法是什么: 这条线不是空的 该行不仅包含空格 我发现了一个表达式,它只匹配空行或那些只包含空格的行,但我无法反转它。这就是我发现的:^\s*[\r\n] 可以简单地反转正则表达式吗 多谢各位 只需验证至少有一个非空白字符: ^.*\S.*$ 说明: 从开始(^)到结束($) *-任意数量的任意字符 \S-一个非空白字符 要匹配非空行,可以使用以下启用多行模式的正则表达式(感谢@Casimir对字符类的更正): 行尾使用与除换行符外的任何字符匹配的* 看 要

匹配符合以下规则的所有行的最简单方法是什么:

  • 这条线不是空的
  • 该行不仅包含空格
  • 我发现了一个表达式,它只匹配空行或那些只包含空格的行,但我无法反转它。这就是我发现的:
    ^\s*[\r\n]

    可以简单地反转正则表达式吗


    多谢各位

    只需验证至少有一个非空白字符:

    ^.*\S.*$
    

    说明:

    • 从开始(
      ^
      )到结束(
      $
    • *
      -任意数量的任意字符
    • \S
      -一个非空白字符

    要匹配非空行,可以使用以下启用多行模式的正则表达式(感谢@Casimir对字符类的更正):

    行尾使用与除换行符外的任何字符匹配的
    *

    要仅检查行是否为空白(但不匹配),请使用简化版本:

    ^[^\S\r\n]*\S
    

    [^\S\r\n]*
    匹配0个或更多字符,而不是非空格、回车符和换行符。
    \S
    与非空白字符匹配


    顺便说一句,如果你用C#编写代码,你不需要正则表达式来检查字符串是否是空白,就像现在一样,只要用str.split(new[]{“\r\n”},StringSplitOptions.None)

    分割多行字符串就可以用
    ^[^\S\r\n]*\S
    @CasimiretHippolyte:Yes,检查行是否不是空白,这是我对c方式的了解,我需要这个用于数据库;)谢谢忘记/m,忘记旧注释
    \S
    意味着找到的行不是空的,也意味着它至少包含一个非空白字符。最好的办法是使用这个正则表达式grep行。
    ^[^\S\r\n]*\S