2

問題は、ドメイン名からいくつかの奇妙な文字を削除することですが、アクセント付き文字 (ドイツ語、ポーランド語のデンマーク語) などの特殊な Unicode 文字を保持することです。たとえば、radisson-blu.es、見えませんが、ss. (メモ帳にコピーして確認してください)。

同様の問題に関する多くの投稿を見てきましたが、各ソリューションではその特殊文字が削除されないか、削除されますが、保持する必要がある他の特殊文字も削除されます。

4

4 に答える 4

1

そこに表示されている (表示されていない) 文字は、U+00AD ソフト ハイフンです。を使用して正規表現で参照できます\u00ad。例:

Regex.Replace(str, @"\u00ad", "");

ただし、1 文字の置換にはstring.Replace、同様に使用することもできます。

于 2012-07-16T13:51:14.617 に答える
1

正規表現[^\w\s.,!@#$%^&*()=+~`-]を空の文字列に置き換えます

于 2012-07-16T13:51:31.193 に答える
0

'\xAD'はソフトハイフンです (コードポイントの名前は です"SOFT HYPHEN")。

Unicode コードポイント データベースによると、そのカテゴリは"Cf"(または"Format") であるため、regex と一致し@"\p{Cf}"ます。

奇妙なことに、Microsoft Visual C# 2010 Express は、それは に一致しないが、通常のハイフンと同じカテゴリである( )@"\p{Cf}"に一致すると言います。@"\p{Pd}""Dash Punctuation"

于 2012-07-16T19:46:11.187 に答える