回答:
文字クラスを使用する: [ \t]
\tですか?
@EiríkrÚtlendiが述べたように、受け入れられたソリューションでは、水平タブ(U + 0009)と改行スペース(U + 0020)の2つの空白文字のみが考慮されます。改行しないスペースなど、他の空白文字は考慮されません(これは、私が処理しようとしているテキストに含まれています)。より完全な空白文字のリストはウィキペディアに含まれており、リンクされたPerlの回答でも参照されています。これらの他の文字を説明する単純なC#ソリューションは、文字クラスの減算を使用して構築できます。
[\s-[\r\n]]
または、EiríkrÚtlendiのソリューションを含めて、
[\s\u3000-[\r\n]]
注: CJKテキスト(中国語、日本語、韓国語)を扱うユーザーの場合、これまでに試したどの実装(Perl、.NET、PCRE、Python)にも2バイトのスペース(Unicode \u3000)は含まれていません\s。最初に文字列を正規化する(すべて\u3000をで置き換えるなど\u0020)か、このコードポイントを含む文字セットを、ターゲットにする他の空白などに加えて使用する必要があります[ \t\u3000]。
PerlまたはPCREを使用している場合は\h、水平空白の省略形を使用できます。これには、特に、半角スペース、全角スペース、タブが含まれているように見えます。詳細については、「空白に一致するが改行(Perl)スレッドではない」を参照してください。
ただし、この\h速記は、.NETとC#には実装されていません。
\h(Java 8で導入)にはが含まれますが\u3000、\sUNICODE_CHARACTER_CLASSモード(Java 7で導入)を設定しない限り含まれません。
\h。ただし、ここにリストに追加する必要がある場合に備えて、他の多くの空白文字があることを示しています。