是否可以使用正则表达式来检测不是"空字符串"的任何内容,如下所示:
string s1 = "";
string s2 = " ";
string s3 = " ";
string s4 = " ";
Run Code Online (Sandbox Code Playgroud)
等等
我知道我可以使用修剪等,但我想使用正则表达式.
谢谢.
基督教
Tim*_*ker 108
^(?!\s*$).+
Run Code Online (Sandbox Code Playgroud)
将匹配包含至少一个非空格字符的任何字符串.
所以
if (Regex.IsMatch(subjectString, @"^(?!\s*$).+")) {
// Successful match
} else {
// Match attempt failed
}
Run Code Online (Sandbox Code Playgroud)
应该为你做这件事.
^ 将搜索锚定在字符串的开头.
(?!\s*$)一个所谓的负向前瞻,断言在字符串结尾之前不可能只匹配空白字符.
.+然后会实际进行比赛.它将匹配任何内容(换行符除外)直到字符串的结尾.如果要允许换行,则必须设置该RegexOptions.Singleline选项.
遗留问题的上一版本:
^\s*$
Run Code Online (Sandbox Code Playgroud)
匹配仅包含空格(或为空)的字符串.
完全相反:
^\S+$
Run Code Online (Sandbox Code Playgroud)
仅匹配仅包含非空白字符的字符串,最少一个字符.
SLa*_*aks 32
在.Net 4.0中,您也可以拨打电话String.IsNullOrWhitespace.
关于什么?
/.*\S.*/
Run Code Online (Sandbox Code Playgroud)
这意味着
/= 分隔符
.*= 零个或多个除换行符之外的任何内容
\S= 除空格之外的任何内容(换行符、制表符、空格)
所以你会
匹配除换行符之外的任何内容 + 不包含空格的内容 + 除换行符之外的任何内容
为此不需要断言。 \S应该自己工作,因为它匹配任何非空白。