文字列パターンに空白が含まれているか空の場合にfalseを返す正規表現を作成しようとしています。これまでのところ私はこれを持っています
[^\s]
これにより、文字列に空白が含まれていないことを確認できますが、空でないことを確認する方法もわかりません。任意の助けをいただければ幸いです。
/^$|\s+/
これが一致した場合、空白または空があります。
ほとんどの正規表現エンジンは、「カウンターパート」エスケープシーケンスをサポートしています。つまり、\s
(空白)には、そのカウンター部分\S
(非空白)があります。
これを使用して、^\S+$
で少なくとも1つの非空白文字があるかどうかを確認できます。
PHP これらのエスケープシーケンスがいくつかあります 。
私の理解では、空ではなく空ではない文字列を一致させたいので、一番上の答えは反対です。私は提案します:
(.|\s)*\S(.|\s)*
-これは、少なくとも1つの非空白文字(\S
途中で)。任意の文字または空白シーケンス(改行を含む)を前後に付けることができます-(.|\s)*
。
https://regex101.com/ の説明で試すことができます。
私は最終的に受け入れられた答えに似たものを使用しましたが、小さな修正を加えました
(^$)|(\s+$)
Expresso による説明
2つの選択肢から選択します(^ $) [1]番号付きのキャプチャグループ^ $ 行の始まり^ 行の終わり$ [2]キャプチャされた番号付きグループ(\ s + $) 空白、1回以上の繰り返し\ s + 行末$