重複の可能性:
Pythonでテキストが「空」(スペース、タブ、改行)であるかどうかを確認するにはどうすればよいですか?
ファイル内のテキスト行を処理する短い関数を作成しようとしています。重要なコンテンツ(空白だけではないことを意味する)を含む行に遭遇した場合、その行で何かを行うことです。私が欲しかった制御構造は
if '\S' in line: do something
また
if r'\S' in line: do something
(二重引用符を使用して同じ組み合わせを試しましたが、reをインポートしました。)上記のif
ステートメントは、試したすべての形式で、常にFalseを返します。結局、私はテストに頼らなければなりませんでした
if re.search('\S', line) is not None: do something
if
これは機能しますが、単純なステートメントに関連して少し不器用に感じます。それでは、私の質問は、なぜif
ステートメントが機能しないのか、そして(一見)エレガントでシンプルなことをする方法があるのかということです。
制御構造とは関係のない別の質問がありますが、正規表現の違法な使用の可能性にも関係しているのではないかと疑われているので、ここで質問します。文字列がある場合
s = "\ t\tいくつかのテキスト\t\ n \ n"
コード
s.strip('\s')
スペース、タブ、および改行を含む同じ文字列を返します(r'\ s'も同じです)。コード
s.strip()
「テキスト」を返します。これは、文字列なしで呼び出されたstripがデフォルトで空白文字を削除するように設定されている場合でも、私の考えでは、これはまさに「\s」という表現が行っていることです。一方が空白を削除し、もう一方が削除しないのはなぜですか?
ご説明いただきありがとうございます。