Playfair Cipher を使用して暗号化しようとしている文字列内のすべての句読点とスペースを取り除こうとしています。この行が機能しない理由がわかりません。
s = Regex.Replace(s, @"[^\w\s]", string.Empty);
Playfair Cipher を使用して暗号化しようとしている文字列内のすべての句読点とスペースを取り除こうとしています。この行が機能しない理由がわかりません。
s = Regex.Replace(s, @"[^\w\s]", string.Empty);
この[^\w\s]
手段は、単語または空白文字以外のものをすべて削除します。
代わりにこれを試してください:
s = Regex.Replace(s, @"[^\w]", string.Empty);
以下を使用することもできます。
s = Regex.Replace(s, @"\W", string.Empty);
もちろん、アンダースコアは単語の文字と見なされるため、残ります。それらも削除するには、これを試してください:
s = Regex.Replace(s, @"[\W_]", string.Empty);
またはこれ:
s = Regex.Replace(s, @"\W|_", string.Empty);
Regex の代わりに Linq を使用するのはどうですか?
string str = "abc; .d";
var newstr = String.Join("", str.Where(char.IsLetterOrDigit));
^
文字は、ないことを意味します。[^A-Za-z0-9-]
英数字以外のすべてをハイフンに置き換えるために使用します。
あなたの最善の策は、おそらくcontains[^A-Za-z]
以来使用することです。これは、保持したくないと思います。\w
_
0-9
a-z
次の正規表現は、 or以外のものをすべて削除しA-Z
ます。
s = Regex.Replace(s, @"[^A-Za-z]", string.Empty);