[英]Regex remove special characters
我们需要一个C#函数,该函数将从字符串中删除所有特殊字符。
另外,是否可以将“乔治的”更改为“乔治”(删除单引号和字符s)?
此方法将删除字母,数字和空格以外的所有内容。 它还将删除任何'或“后跟字符s。
public static string RemoveSpecialCharacters(string input)
{
Regex r = new Regex("(?:[^a-z0-9 ]|(?<=['\"])s)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, String.Empty);
}
public static string RemoveSpecialCharacters(string input)
{
Regex r = new Regex(
"(?:[^a-zA-Z0-9 ]|(?<=['\"])s)",
RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, String.Empty);
}
瑞安的答案是正确的。 只需添加AZ
,许多人就会需要它。
如果我们知道特殊字符会有所帮助。 这是一个可以解决问题的函数
public bool IsSpecialChar(char c) {
// Need you to fill this out
}
public string RemoveSpecialChars(string s) {
var builder = new System.Text.StringBuilder();
foreach (var cur in s) {
if (!IsSpecialChar(cur)) {
builder.Append(cur);
}
}
return builder.ToString();
}
最好定义要保留的字符列表,而不要枚举所有不需要的字符。 例如,使用perlregexes s/[^A-Za-z0-9]+//g
会删除所有非单词字符(对不起,我对c#regexes:D不熟悉)。
为了您的其他问题,您可以定义以去除基于什么对前一个字,如果你在乎某些情况下(如只有消除's
,如果有前一个字),否则只是删除所有出现's
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.