特殊字符的正则表达式

时间:2015-04-01 19:00:49

标签: c# regex

我正在尝试对字符串进行正则表达式替换,但它并不像我希望的那样顺利。我使用在线工具构建了这个正则表达式,测试显示了我的预期,但是当我运行代码时,我没有得到预期的结果。

我的代码:

  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-

我在某处出错了吗?

1 个答案:

答案 0 :(得分:6)

[^a-zA-Z0-9-]$

            ^^
  

$断言行尾的位置

所以你们只会在行尾之前替换特殊字符。

只需使用

[^a-zA-Z0-9-]

此外,这将取代space。所以最好使用

[^a-zA-Z0-9 -]

参见演示。

https://regex101.com/r/sJ9gM7/40