Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C正则表达式:用相同的值替换两个匹配项中的任何一个_C#_Regex - Fatal编程技术网

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,这是一个很大的帮助。