我正在尝试对字符串进行正则表达式替换,但没有我希望的那么顺利。我通过一个在线工具构建了这个正则表达式,测试结果与我的预期相符,但是当我运行我的代码时,我没有得到预期的结果。
我的代码:
Regex reg = new Regex(@"[^a-zA-Z0-9-]$");
string docName = t.Title.ToLower();
reg.Replace(docName, "-");
我希望通过这样的字符串:"hey! thsi is am@&4$amazing!"
我最终会得到:“hey- thsi is am--4-amazing-
我哪里做错了吗?
最佳答案
[^a-zA-Z0-9-]$
^^
$ assert position at end of a line
所以你的将只替换行尾之前的特殊字符。
就用
[^a-zA-Z0-9-]
此外,这甚至会取代 space
。所以更好地使用
[^a-zA-Z0-9 -]
查看演示。
关于c# - 特殊字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398718/