2015-04-01 226 views
3

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

我的代码:

Regex reg = new Regex(@"[^a-zA-Z0-9-]$"); 
       string docName = t.Title.ToLower(); 
       reg.Replace(docName, "-"); 

我希望,通过采取类似的字符串:"hey! thsi is [email protected]&4$amazing!"
我将结束:"hey- thsi is am--4-amazing-

我有没有出错的地方?

+0

什么是你所得到的结果吗? – 2015-04-01 19:02:42

回答

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

      ^^ 

$在一行

末断言位置,这样你只会线年底前只替换特殊字符。

只使用

[^a-zA-Z0-9-] 

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

[^a-zA-Z0-9 -] 

观看演示。

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

+0

感谢您的帮助!现在完成了。 – user3267755 2015-04-01 19:42:49

相关问题