問題は、ドメイン名からいくつかの奇妙な文字を削除することですが、アクセント付き文字 (ドイツ語、ポーランド語のデンマーク語) などの特殊な Unicode 文字を保持することです。たとえば、radisson-blu.es、見えませんが、ss. (メモ帳にコピーして確認してください)。
同様の問題に関する多くの投稿を見てきましたが、各ソリューションではその特殊文字が削除されないか、削除されますが、保持する必要がある他の特殊文字も削除されます。
問題は、ドメイン名からいくつかの奇妙な文字を削除することですが、アクセント付き文字 (ドイツ語、ポーランド語のデンマーク語) などの特殊な Unicode 文字を保持することです。たとえば、radisson-blu.es、見えませんが、ss. (メモ帳にコピーして確認してください)。
同様の問題に関する多くの投稿を見てきましたが、各ソリューションではその特殊文字が削除されないか、削除されますが、保持する必要がある他の特殊文字も削除されます。
そこに表示されている (表示されていない) 文字は、U+00AD ソフト ハイフンです。を使用して正規表現で参照できます\u00ad。例:
Regex.Replace(str, @"\u00ad", "");
ただし、1 文字の置換にはstring.Replace、同様に使用することもできます。
正規表現[^\w\s.,!@#$%^&*()=+~`-]を空の文字列に置き換えます
'\xAD'はソフトハイフンです (コードポイントの名前は です"SOFT HYPHEN")。
Unicode コードポイント データベースによると、そのカテゴリは"Cf"(または"Format") であるため、regex と一致し@"\p{Cf}"ます。
奇妙なことに、Microsoft Visual C# 2010 Express は、それは に一致しないが、通常のハイフンと同じカテゴリである( )@"\p{Cf}"に一致すると言います。@"\p{Pd}""Dash Punctuation"