C# C正则表达式:用相同的值替换两个匹配项中的任何一个
尝试在字符串中进行一些正则表达式匹配和替换,所有的符号、单引号和空格字符都替换为破折号- …和 所有重复的破折号将替换为单个破折号 这就是我正在尝试的,但它不起作用,因为重复的破折号没有被替换。感谢您的帮助C# C正则表达式:用相同的值替换两个匹配项中的任何一个,c#,regex,C#,Regex,尝试在字符串中进行一些正则表达式匹配和替换,所有的符号、单引号和空格字符都替换为破折号- …和 所有重复的破折号将替换为单个破折号 这就是我正在尝试的,但它不起作用,因为重复的破折号没有被替换。感谢您的帮助 Regex.Replace(mystring, "([' &])|([-]{2,})", "-") 该正则表达式应该可以工作: 您只需完成以下任务: mystring = Regex.Replace(mystring, "([' &])|([-]{2,})", "-");
Regex.Replace(mystring, "([' &])|([-]{2,})", "-")
该正则表达式应该可以工作: 您只需完成以下任务:
mystring = Regex.Replace(mystring, "([' &])|([-]{2,})", "-");
字符串是不可变的,还记得吗?正则表达式应该工作: 您只需完成以下任务:
mystring = Regex.Replace(mystring, "([' &])|([-]{2,})", "-");
字符串是不可变的,还记得吗?试试这一个似乎更简单。我假设你永远不会想要——结果是
string orig = "12467&89- 1&2467'89 12'46789 12467--89";
Regex regex = new Regex("[&' -]+");
string newString = regex.Replace(orig, "-");
输出:
12467-89-1-2467-89-12-46789-12467-8
试试这个看起来更简单。我假设你永远不会想要——结果是
string orig = "12467&89- 1&2467'89 12'46789 12467--89";
Regex regex = new Regex("[&' -]+");
string newString = regex.Replace(orig, "-");
输出:
12467-89-1-2467-89-12-46789-12467-8
与&'相比,使用符号、与、单引号和空格字符可能更好。后者很难读懂。我们能得到一个不起作用的字符串的样本吗?最好是说,与&',相比,使用“与”,“单引号”和空格字符更好。后者很难读懂。我们能得到一个不起作用的字符串的样本吗?谢谢Michael。如果我以这个调用为例,我仍然在一行中得到两个破折号:string mystring=Regex.Replacehi&-6-,['&]|[-]{2,},-;是,因为正则表达式不使用连字符将符号和单引号分组。如果您的目的是使生成的字符串没有双连字符,那么在James的回答中使用正则表达式。谢谢Michael。如果我以这个调用为例,我仍然在一行中得到两个破折号:string mystring=Regex.Replacehi&-6-,['&]|[-]{2,},-;是,因为正则表达式不使用连字符将符号和单引号分组。如果您的目的是使生成的字符串没有双连字符,那么在James的回答中使用正则表达式。谢谢James,这是一个很大的帮助。谢谢James,这是一个很大的帮助。