RegEx替换错误的符号C#

本文关键字:符号 错误 替换 RegEx | 更新日期: 2023-09-27 18:28:43

我需要用短划线字符"-"替换字符串中除了字符和数字之外的错误符号

var myString = "this=is+/* wrong!@# string^&*(";

我使用

Regex.Replace(myString, "[^0-9a-zA-Z]+", "-");

结果是"这是----错误的----字符串----"

但我需要"这是错误的字符串"

我应该在RegEx中更改什么。谢谢

RegEx替换错误的符号C#

无法再现:

using System;
using System.Text.RegularExpressions;
class Test
{
    static void Main()
    {
        var input = "this=is+/* wrong!@# string^&*(";
        var output = Regex.Replace(input, "[^0-9A-Za-z]+", "-");
        Console.WriteLine(output);
    }                   
}

输出:this-is-wrong-string-

因此,您可能希望使用TrimEnd('-')来消除尾随的"-",但除此之外,它对我来说看起来很好。将您的代码与我的简短但完整的程序进行比较,如果您找不到问题所在,请编写一个类似的简短但完全的程序,演示问题所在。

您的正则表达式适用于我:

PS> "this=is+/* wrong!@# string^&*(" -replace '[^0-9a-zA-Z]+','-'
this-is-wrong-string-

但之后需要删除尾随的-