2015-12-04 15 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 –

相關問題