あらゆる種類の非標準文字を含む可能性のある文字列を処理する必要があり、句読点とスペースを除く英数字以外のすべての文字に一致して削除する正規表現を提供するよう求められました。
これを行う方法はありますか?
\p{P}
または\p{Punctuation}
: 任意の種類の句読点。
\p{L}
または\p{Letter}
: 任意の言語の任意の種類の文字。
\p{Nd}
または\p{Decimal_Digit_Number}
: 表意文字スクリプトを除くすべてのスクリプトの 0 から 9 までの数字。
あなたの正規表現は次のようになります
[^\p{L}\p{Nd}\p{P} ]+
これは、文字でも、数字でも、句読点でも、スペースでもないものに一致します。
次の正規表現を使用します。
[^a-zA-Z0-9!.,'" ]
その他の許可されている句読文字を式に追加します。最後の空のスペースはspace
文字です。
\w
アンダースコアが許可されている場合に使用します。\s
空白文字を許可します。
次のパターンを使用し@"[^\s\w]| "
^
ます。角括弧内の記号は否定を意味します。したがって、これは、単語の文字 (数字、文字、および下線) と空白 ( [^\s\w]
) またはスペースを除くすべてに一致します。