問題は、ドメイン名からいくつかの奇妙な文字を削除することですが、アクセント付き文字 (ドイツ語、ポーランド語のデンマーク語) などの特殊な 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"