[英]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.