簡體   English   中英

C# - 正則表達式 - 替換不匹配的字符

[英]C# - regex - replace non matching characters

[有類似的問題,但沒有一個能滿足我的需求]

我允許用戶輸入與此正則表達式匹配的文本:

string validChars = @"^[A-Za-zÀ-ÖØ-öø-ÿ0-9\s\.\-\&\,\'\(\)_\/\""\!\:\%]*?$";

我想要做的是刪除與該正則表達式不匹配的字符

我怎樣才能反轉正則表達式,這樣我才能做到

invalidChars  = some_trick_to_invert_regex(validChars); 
text = Regex.Replace(text, invalidChars , "");

感謝您的幫助

您可以通過將^放在方括號內來將要保留的字符列入白名單。 例子:

string validChars = @"[^A-Za-zÀ-ÖØ-öø-ÿ0-9\s\.\-\&\,\'\(\)_\/\""\!\:\%]";
string test = "abc#de";
var result = Regex.Replace(test, validChars, ""); //abcde

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM