這個問題很容易。正則表達式來判斷一個字符串是否不包含特定字符
我想測試一個字符串是否不包含使用正則表達式的字符。我認爲這個表情的形式是「[^ x]」,其中x是你不想出現的角色,但這似乎不起作用。
例如,
Regex.IsMatch("103","[^0]")
和
Regex.IsMatch("103&","[^&]")
都返回真(我期望假)。
我開始使用"[^&]"
,也許&需要轉義爲\ &,但似乎沒有什麼區別。
想法?我認爲它很小。
此外,我使用.NET,所以請記住。
EDIT1:
我發現this,但它似乎沒有回答我遇到的問題。
EDIT2:
我想給Kevin和Joel的建議作出迴應。這些建議確實會更快,但在這種情況下,他們沒有達到我需要的靈活性,所以如果您通過搜索找到了這個問題,那麼一定要看看他們的答案是否符合您的需求。在我的情況下,正則表達式傳遞給一個DataTable驗證方法,該方法循環遍歷每一行,並驗證特定列中該行的內容是否與正在傳入的RegEx相匹配。由於我將重用此方法對於正在驗證等幾個數據表,我想:
- 使用正則表達式來實現驗證的範圍最廣,並且
- 總是尋找一個積極的匹配(即不是使用的Regex.IsMatch(細胞! ,regexvariable),我想依靠總是能夠使用Regex.IsMatch(cell,regexvariable),因爲調用這個方法的大多數DataTables將使用正匹配而不是負數
希望有幫助。
如果只檢查單個字符的存在,你可以沒有正則表達式會好得多。凱文是正確的:使用.IndexOf()或更簡單。它會更可讀,更清晰,更快速。 – ruquay 2008-10-13 20:08:46