1
我重構了一個非常大的C項目,我需要找出由特定程序員編寫的代碼的一部分。 幸運的是,每個參與此項目的人都使用標準C風格評論中的電子郵件地址標記自己的代碼。正則表達式:提取兩個字符串之間的文本匹配特定字的文本
好吧,有人可以說,這可以通過命令行grep輕鬆實現,但這不是我的目標:我可能需要刪除此評論或用其他文本替換它們,所以正則表達式是唯一的解決方案。
Ex。
/*********************************************
*
* ... some text ....
*
* author: [email protected]
*
*********************************************/
從this post我找到了正確的表達式搜索對於C風格的註釋是:
\/\*(\*(?!\/)|[^*])*\*\/
但是,這是不夠的!我只需要包含特定電子郵件地址的評論。幸運的是,我期待的電子郵件地址域在整個項目中似乎是獨一無二的,所以這可以使它更簡單。
我想我必須用一些積極的預測先行斷言,我已經試過這一個:
(\/\*)(\*(?!\/)|[^*](?=.*domain.com))*(\*\/)
,但它不運行! 有什麼建議嗎?
['\/\ * [^ *] *(?:\ *(?!\ /)[^ *] *)* @ domain \ .com [^ *] *(?:\ *(?! \ /)[^ *] *)* \ * \ /'](https://regex101.com/r/nW8uP2/1)? –
'\/\ *。* author:。* @ domain \ .com。*?\ * \ /'應該匹配。 – Saleem
@Saleem,[它會過火](https://regex101.com/r/mV2bU2/1),當您在標記的文本內部進行匹配時,不要依賴'。*'。 –