[英]Use regex in c# to remove specific combination of characters
我想在字符串中保留以下字符:
至此,我可以保留所有字母數字字符。 問題在於撇號字符,我保留所有撇號,而我只保留那些由字母數字字符包圍的字符。 這是我的代碼:
Regex rgx = new Regex("[^a-zA-Z0-9' -]");
string newString = rgx.Replace(oldString, "");
示例:對於此字符串"abc'd1*%'"
,我想獲取"abc'd1"
。
您可以使用下面的正則表達式,然后將匹配的字符替換為空字符串。
@"(?<![A-Za-z])'|'(?![A-Za-z])|[^A-Za-z0-9']"
說明:
(?<![A-Za-z])'
匹配所有不帶字母的單引號。 |
要么 '(?![A-Za-z])
匹配所有不帶字母的單引號。 因此,這兩種模式無法匹配單引號,該單引號前后均帶有字母。 |
要么 [^A-Za-z0-9']
從其余字符串開始,此模式將匹配任何字符,但不匹配字母數字或單引號。 碼:
string str = "abc'd1*%'";
string result = Regex.Replace(str, @"(?<![A-Za-z])'|'(?![A-Za-z])|[^A-Za-z0-9']", "");
Console.WriteLine(result);
Console.ReadLine();
如果要匹配空格,請嘗試以下操作:
[\w\s-]+|(?<=[\w\s])'(?=[\w\s])
如果沒有空格,請嘗試以下操作:
[\w-]+|(?<=[\w])'(?=[\w])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.