使用する文字の範囲がわからないため、または[[:cntrl:]]のような文字クラスがルビーで見つかった場合、私はこれに関するあなたの助けに感謝しますか?
非印刷可能とは、入力文字列を印刷するときに、出力に表示されないすべての文字を削除することを意味します。注意してください、私はC#の正規表現を探します、私のコードに問題はありません
以下を使用して、すべての制御文字およびその他の印刷不能文字を削除できます。
s = Regex.Replace(s, @"\p{C}+", string.Empty);
\p{C}
Unicodeカテゴリクラスは、ASCIIテーブル以外のものも含めて、すべての制御文字に一致します。NETでは、UnicodeカテゴリクラスはデフォルトでUnicode対応です。
で試すことができます:
string s = "Täkörgåsmrgås"; s = Regex.Replace(s, @"[^\u0000-\u007F]+", string.Empty);
印刷できない文字に関するドキュメント: https://en.wikipedia.org/wiki/Control_character
Char.IsControlメソッド:
https://msdn.Microsoft.com/en-us/library/system.char.iscontrol.aspx
たぶんあなたは試すことができます:
string input; // this is your input string
string output = new string(input.Where(c => !char.IsControl(c)).ToArray());