有沒有一種簡單的方法來匹配所有的標點符號,除了週期和下劃線,在C#正則表達式?希望沒有列舉每個標點符號。正則表達式:匹配任何標點符號。和_
回答
使用正則表達式減法
[\p{P}-[._]]
這裏的(我不確定其他版本是否支持它)... http://msdn.microsoft.com/en-us/library/ms994330.aspx
這裏的一個C#示例
string pattern = @"[\p{P}\p{S}-[._]]"; // added \p{S} to get ^,~ and ` (among others)
string test = @"_""'a:;%^&*~`[email protected]#.,?";
MatchCollection mx = Regex.Matches(test, pattern);
foreach (Match m in mx)
{
Console.WriteLine("{0}: {1} {2}", m.Value, m.Index, m.Length);
}
說明的圖案是一個字符類減法。它以像[\ p {P}]這樣的標準字符類開始,然後添加一個減去字符類,如 - [._],它表示刪除該類。和_。減法放在標準類膽量之後的[]內。
你可能用一個否定的字符類是這樣的:
[^0-9A-Za-z._\s]
這包括每一個字符除了所列。您可能需要排除更多字符(如控制字符),具體取決於您的最終要求。
這也會得到空格 – 2010-10-19 23:29:51
好的,給排除列表添加空間。 – 2010-10-19 23:39:07
好吧,但我想要你的代表的一半這個問題...... – 2010-10-19 23:41:42
到目前爲止的答案並不尊重所有標點符號。這應該工作:
(?![\._])\p{P}
(說明:排除模式,以確保既不.
也不_
匹配,然後匹配任何Unicode標點字符。)
- 1. 正則表達式匹配整個單詞和標點符號
- 2. 正則表達式 - 匹配字母和標點符號
- 3. C++正則表達式匹配無標點符號
- 4. 正則表達式匹配符號& - 。 「
- 5. @符號的正則表達式匹配
- 6. 正則表達式不匹配```符號
- 7. 正則表達式匹配標點
- 8. 正則表達式來匹配標點符號和字母數字字符
- 9. 正則表達式不匹配連字符和其他標點符號
- 10. 正則表達式匹配任何其他正則表達式不匹配
- 11. 正則表達式Java(標點符號)
- 12. 正則表達式標點符號'
- 13. 使用通配符正則表達式匹配任何字符
- 14. 匹配符號和括號與正則表達式
- 15. 正則表達式匹配[和]之間的任何字符串
- 16. 正則表達式匹配所有的數字,字母和標點符號嗎?
- 17. 正則表達式匹配標點符號和羅馬在小寫
- 18. 重複標點符號和符號的Python正則表達式
- 19. 正則表達式匹配字母數字字符和符號(&)
- 20. 桑達正則表達式^ *(尖點星號)不匹配正確
- 21. 正則表達式匹配一些托架項目符號點
- 22. 正則表達式匹配高達「/」的任何字符串Javascript
- 23. 如何在正則表達式中匹配脫字號(^)符號?
- 24. 與註冊商標符號匹配的正則表達式
- 25. 正則表達式通配符匹配
- 26. 正則表達式正則表達式匹配字符串
- 27. 正則表達式用逗號和點數匹配數字
- 28. 正則表達式\ d匹配減號和/或小數點嗎?
- 29. 正則表達式javascript,爲什麼點和逗號匹配爲\
- 30. 正則表達式 - 匹配的號碼
這似乎不匹配^,〜或';我可以測試它錯誤,還是.NET不認爲它們是標點符號? – Smashery 2010-10-20 00:50:10
如果刪除 - [._],那麼\ p {P}也不匹配它們。 – Les 2010-10-20 00:57:51
因此.NET不認爲它們是標點符號? – Smashery 2010-10-20 00:58:38