空でもnullでもない文字列を正規表現でマッチングする方法について、どのように記述すればよいでしょうか。

空でもnullでもない文字列に一致する正規表現は次のように書けます:

^(?![\s\S]*$)\S+$

説明:`^`は文字列の先頭をマッチさせる`(?![\s\S]*$)`は否定的な先読みアサーションで、後ろに空白文字や任意の文字が全くないことを確認する`\S+`は1つ以上の非空白文字にマッチする`$`は文字列の末尾にマッチする使用例:

String regex = "^(?![\\s\\S]*$)\\S+$";
String input = "abc";
boolean isMatch = input.matches(regex);
System.out.println(isMatch);  // 输出 true
input = null;
isMatch = input.matches(regex);
System.out.println(isMatch);  // 输出 false
input = "   ";
isMatch = input.matches(regex);
System.out.println(isMatch);  // 输出 false

この正規表現は、少なくとも1つの空白以外の文字を含む文字列とマッチしますが、空の文字列、空白のみの文字列、またはnullとはマッチしません。

bannerAds