3

以下の正規表現を使用して、すべての非ASCII文字を文字列から削除しています。

String pattern = @"[^\u0000-\u007F]";
Regex rx = new Regex(pattern, RegexOptions.Compiled);
rx.Replace(data," ");

ただし、通貨(ポンド記号)と商標記号の使用を許可したい。

上記の正規表現を以下に示すように変更しましたが、うまくいきます。正規表現が有効かどうか誰でも確認できますか?

 String pattern = @"[^\u0000-\u007F \p{Sc}]";

基本的に、すべての通貨記号も許可したいと考えています。

4

1 に答える 1

2

はい、あなたの正規表現は正しいです。

コードで行っていることは、正規表現に一致する文字を空の文字に置き換えることです。

さて、あなたの正規表現はどの文字と一致するでしょうか?

以下を除くすべて:

他の文字を引き続き許可したい場合は、はい、それらも追加できます(\p{Sc}.

編集:

今後行う場合は注意してください。正規表現は実際には[^\u0000-\u007F\p{Sc}](スペースなし) になりますが、この場合はスペース文字が既に ASCII 範囲内にあるため問題ではありません。

于 2013-02-19T09:29:27.130 に答える