2015-12-04 17 views
2

我正在使用正则表达式来消毒字符串,我正在寻找删除特殊字符,允许字&数字,并允许在单词之间的空格。正则表达式模式单个和多个实例相同的字符

下面的代码运行良好,但我还想接受 - 字符的单个实例,但是按n次顺序停止,例如, ----采取下面的字符串和expexted结果:

之前: '灰色1.25-2.50mm \ ----''

后:灰色1.25-2.50mm

string clean = Regex.Replace(test, @"[^0-9a-zA-Z./ \w]+", "").Trim(); 

我从我的示例中移除 - 因为它会接受所有实例。

+1

的'0-9A-ZA-Z'是多余的,如果你在字符类中添加'\ w'。 –

+0

尝试['[^。/ \ w-] + | \ B- \ B'](http://regexstorm.net/tester?p=%5b%5e.%2f+%5cw-%5d%2b%7c %5cB-%5CB与I =%27grey + 1.25-2.50mm +%5C + ---- +%27 +%27&R =)。 –

+0

它呢,谢谢。感谢Soner – JohnL

回答

1

您可以使用正则表达式吧:

string clean = Regex.Replace(@"grey 1.25-2.50mm \ ----", @"([^\w./\s-]+|-{2,})", "") 
+0

感谢阿尔贝托,这也按预期工作。 – JohnL

+0

@JohnL我很高兴解决了你的问题:D –

相关问题