我需要一個用於查找類聲明的正則表達式,所以我可以在「class」關鍵字前添加#define。正則表達式不一定非常完美,只要能夠捕捉大部分情況即可。在C++代碼中查找類聲明的正則表達式
2
A
回答
2
如何:
/^\s*class\s/
這應該很好地工作。我不太確定。
2
/class\s+([^\s]+)/
這將捕獲類名爲$ 1(或任何正則表達式框架您使用的等價物)。這將爲而不是適用於類名後面可能有空格<>的模板類。解析對於正則表達式來說是不可行的,因爲它需要匹配平衡的尖括號對。
3
/.*class\s+([^{]+)\s*[:]?([^{]+){/
這應該適用於大多數類定義,包括模板類。類名稱在$ 1中捕獲,如果它是派生類,則基數將在$ 2中。
1
雅尼克的回答大多覆蓋它,但它也不幸匹配前置聲明(以及隨後的文本在它們下面)和嚴格的枚舉即enum class myStrictEnum { // stuff };
這工作得很好,是不夠嚴謹的,但可以說是更詳細的比它需要的話。
^(?!enum).*class\b\s\b[A-Za-z_][A-Za-z_0-9]*\b\s*($)?(|:\s*($)?(public|private|protected)\s*($)?\b[^{]*\s*)\s*($)?{
相關問題
- 1. 正則表達式未聲明(Dev C++)
- 2. 正則表達式中的C#代碼
- 3. Linq聲明中的正則表達式?
- 4. 正則表達式查找所有的「如果」沒有聲明「{」
- 5. 正則表達式在源代碼中查找特定的Javascript
- 6. 正則表達式在C#中找到代碼塊#
- 7. 正則表達式查找代碼Sweave表達
- 8. 正則表達式:在Python代碼中查找禁用字符
- 9. 在python正則表達式中查找base64源代碼
- 10. 使用正則表達式在源代碼中查找方法
- 11. JS:在代碼中查找正則表達式文字
- 12. 查找一段代碼中的字符串(正則表達式)
- 13. 正則表達式查找代碼中的註釋空
- 14. 正則表達式來查找在XCode註釋的代碼
- 15. 正則表達式到C++代碼
- 16. 正則表達式查找
- 17. 查找正則表達式
- 18. 查找正則表達式
- 19. Java進口聲明正則表達式
- 20. Lua正則表達式函數聲明
- 21. Python和正則表達式。或聲明
- 22. 使用C#正則表達式查找C++代碼模式(定義&emuns)
- 23. 在java中查找正則表達式
- 24. 正則表達式中的PHP代碼
- 25. c#中的正則表達式在日誌中查找文件
- 26. 在C#中使用正則表達式查找循環模式
- 27. 正則表達式在c中的正則表達式#
- 28. 正則表達式來檢查C代碼的括號
- 29. 使用正則表達式查找正則表達式字符類
- 30. TCL:ANSI C++聲明語法的正則表達式
正則表達式應該匹配整個(可能是多行)聲明,還是隻匹配class關鍵字?後者很容易得到正確的;對於前者,正則表達式可能是錯誤的工具。 – 2009-10-20 22:29:46