温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - regular expression for anything but an empty string
c# regex

c# - 除空字符串外的任何内容的正则表达式

发布于 2020-03-27 16:19:43

是否可以使用正则表达式来检测不是“空字符串”的任何内容,如下所示:

string s1 = "";
string s2 = " ";
string s3 = "  ";
string s4 = "   ";

等等

我知道我可以使用trim等,但是我想使用正则表达式。

查看更多

查看更多

提问者
cs0815
被浏览
110
289 2018-10-12 01:56
^(?!\s*$).+

将匹配包含至少一个非空格字符的任何字符串。

所以

if (Regex.IsMatch(subjectString, @"^(?!\s*$).+")) {
    // Successful match
} else {
    // Match attempt failed
}

应该为你做。

^ 将搜索锚定在字符串的开头。

(?!\s*$),即所谓的否定超前行为,断言只有在字符串末尾才匹配空白字符。

.+然后将实际进行比赛。它将匹配直到字符串末尾的所有内容(换行符除外)。如果要允许换行,则必须设置RegexOptions.Singleline选项。


遗留问题的上一个版本:

^\s*$

匹配仅包含空格(或为空)的字符串。

完全相反:

^\S+$

仅匹配仅由非空格字符组成的字符串,至少一个字符。