2012-04-27 18 views
-1

すべての非標準文字を含む文字列を処理する必要があります。正規表現を指定する必要があります。句読点とスペースを除く英数字以外。.net空白以外のすべての非英数字の正規表現の正規表現

これを行う方法はありますか?

+1

アクセント記号のような意味ですか? – Jack

+0

@Jackは "英数字"の定義に依存しています。私はドイツ語のWikipediaを調べました。それは "任意の文字と任意の数字"ですので、私の答えですが、[English Wikipedia](http://en.wikipedia.org/wiki/Alphanumeric)は " **ラテン文字**とアラビア数字のコレクション」 – stema

+0

実際に非標準文字を最も近いASCII *に置き換えたくないのですか? 'ポポイン 'のような誰かの名前を'ポポイン'に変えることは、少し無頓着に思えます。 –

答えて

2

\p{P}または\p{Punctuation}:句読点文字の任意の種類。

\p{L}または\p{Letter}:任意の言語の任意の種類の文字。

\p{Nd}または\p{Decimal_Digit_Number}:表意文字のスクリプトを除くすべてのスクリプトの0〜9の数字。

あなたの正規表現は、これは、文字、数字ではなく、ではない句読点やスペースではないではないものにマッチします。この

[^\p{L}\p{Nd}\p{P} ]+ 

ようになります。

0

は、このパターンを使用します。乗括弧内@"[^\s\w]| "
^記号は否定を意味します。これは、単語の文字(数字、文字、下線)と空白([^\s\w])または空白以外のすべてに一致します。

0

次の正規表現を使用します。

[^a-zA-Z0-9!.,'" ] 

式に許可されている句読点文字を追加します。最後の空白はspace文字です。

アンダースコアが許可されている場合は\wを使用してください。 \sは空白文字を許可します。 regular-expressions.infoから

関連する問題