C#正则表达式:用相同的值替换两个匹配中的任何一个

lar*_*ryq 1 c# regex

尝试在字符串中进行一些正则表达式匹配和替换,其中所有符号,单引号和空格字符都用短划线" - "替换

...和

所有重复的破折号都用一个破折号替换.

这就是我正在尝试但它不起作用,因为重复的破折号没有被替换.任何帮助表示赞赏和谢谢.

Regex.Replace(mystring, "([' &])|([-]{2,})", "-")
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 6

试试这个(看起来更简单).我假设你在结果中从不想要" - ".

string orig = "12467&89- 1&2467'89 12'46789 12467--89";

Regex regex = new Regex("[&' -]+");

string newString = regex.Replace(orig, "-");
Run Code Online (Sandbox Code Playgroud)

输出:

12467-89-1-2467-89-12-46789-12467-8
Run Code Online (Sandbox Code Playgroud)