2010-09-03 85 views
2

我有一個字符串必須匹配@「^ [\ w * \ $] [\ w \ s - \ $] *((\ d {1,})) {0,1} $」。 如果它不匹配這個正則表達式我想要從字符串中刪除不匹配的字符。我如何設置?使用正則表達式篩選出錯誤的字符

+0

嘗試更新的答案 – 2010-09-03 11:52:08

+0

何時應該匹配?數字已經包含在\ w中。 – kriss 2010-09-03 12:09:26

回答

3
s = Regex.Replace(s, @"^[^[\w*\$][\w\s-\$]*((\d{1,})){0,1}]$", "") 
+0

這將替換上述正則表達式中的所有字符,我希望替換此正則表達式中不包含的字符。如果可能的話,這必須恢復。 – Younes 2010-09-03 11:29:57

+1

@Younes =^char表示不是 – 2010-09-03 11:35:02

+0

^char表示行的開始 – iburlakov 2010-09-03 11:43:11

1

你可能想要類似的東西(但我不確定實際的問題)。也許你想刪除整個正則表達式,如果它不匹配,這不是做下面的代碼:

s = Regex.Replace(s, @"^[^\w*\$]([\w*\$])[^\w*\$\s-]*([\w\s-\$]*).*$", "$1$2") 

的想法是交織都想得到字符塊與禁止文字列表中,並且只保留那些你想。你的正則表達式的結尾有點奇怪,所以我簡化了它。

+0

正如你所看到的,我並不是最好的正則表達式。我打算很快去探索這個話題。謝謝你的幫助。 – Younes 2010-09-03 12:52:14