C# 我可以使用正则表达式仅用两个冒号替换两个或多个冒号吗
开发人员已经编写了这个代码,但它似乎是一个不太干净的实现,如果用户输入许多冒号,它也不起作用。我想使用正则表达式,但正则表达式是否可以检查两个或更多冒号,并用两个冒号替换C# 我可以使用正则表达式仅用两个冒号替换两个或多个冒号吗,c#,regex,C#,Regex,开发人员已经编写了这个代码,但它似乎是一个不太干净的实现,如果用户输入许多冒号,它也不起作用。我想使用正则表达式,但正则表达式是否可以检查两个或更多冒号,并用两个冒号替换 renameString = renameString.Replace(":::::::", "::"); renameString = renameString.Replace("::::::", "::"); renameString = re
renameString = renameString.Replace(":::::::", "::");
renameString = renameString.Replace("::::::", "::");
renameString = renameString.Replace(":::::", "::");
renameString = renameString.Replace("::::", "::");
renameString = renameString.Replace(":::", "::");
有没有人对更好的方法有什么建议
以下是该方法的完整代码供参考:
if (renameString.StartsWith(":") || renameString.EndsWith(":"))
{
AcceptText.IsEnabled = false;
IsValidDeckName = false;
}
else
if (renameString.Contains("::"))
{
renameString = renameString.Replace(":::::::", "::");
renameString = renameString.Replace("::::::", "::");
renameString = renameString.Replace(":::::", "::");
renameString = renameString.Replace("::::", "::");
renameString = renameString.Replace(":::", "::");
IsValidDeckName = true;
AcceptText.IsEnabled = true;
}
else
{
IsValidDeckName = true;
AcceptText.IsEnabled = true;
}
任何关于是否可以改进的建议都将不胜感激。使用Regex
Regex.Replace(重命名字符串“::+”,“::”)
使用正则表达式:
renameString = Regex.Replace(renameString, @":{3,}", "::");
换句话说:将至少出现3次字符“:”的所有序列替换为“:”。如果字符串包含一行中超过7个冒号的序列,应如何处理?是否应保留其他冒号?e、 g.如果原始字符串为“::::”则结果应为“::”?任何两个以上的冒号都应转换为两个冒号。