RegEx替换错误的符号C#
本文关键字:符号 错误 替换 RegEx | 更新日期: 2023-09-27 18:28:43
我需要用短划线字符"-"替换字符串中除了字符和数字之外的错误符号
var myString = "this=is+/* wrong!@# string^&*(";
我使用
Regex.Replace(myString, "[^0-9a-zA-Z]+", "-");
结果是"这是----错误的----字符串----"
但我需要"这是错误的字符串"
我应该在RegEx中更改什么。谢谢
无法再现:
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-
但之后需要删除尾随的-
。