4
我是相當新進的正則表達式,所以我使用檢測功能,並在C源文件 -匹配函數和函數在C調用使用正則表達式
\w+(?=\s*\()
它的工作原理函數調用正向前查找寫下了以下簡單的regex很好,但問題是它檢測到像if()
,while()
等非功能語法。 我可以很容易地通過saying-
(if(?!\()) | (while(?!\())
避免這一點,但問題是如何將第二正則表達式與第一個結合?我不能OR
他們,COS第一個仍然匹配if()
,while()
等,在OR
表達式,它足夠的,如果其中一個條件匹配。
如何將這些正則表達式合併或有更好更簡單的一個,這將不符合像if()
非功能語法,while()
PS:我使用以下工具來測試我的正則表達式
什麼是您用來處理C文件的語言/工具?如果它支持環視,那麼你可以使用負面預覽'(?!(if | while))',然後是正則表達式來匹配函數。 – nhahtdh 2012-07-16 07:59:06
我不相信正則表達式是適合這項工作的正確工具 - 製作難以匹配的東西很容易。 – Flexo 2012-07-16 08:03:26
@nhahtdh我[試過](http://regexr.com?31hq1)你的建議。它似乎沒有按照我的意圖行事。你能否檢查我是否出了問題? – 2012-07-16 08:09:08