我有一個文件夾包含許多PHP文件,我需要遞歸搜索不以abc
開頭的函數定義。所以我需要得到function something() {
的所有匹配,其中abc
不是something
的前綴。什麼是我可以用grep來實現這個的正則表達式?正則表達式 - 查找所有不以某個前綴開頭的函數名稱
-1
A
回答
2
只需使用正則表達式:
(?:\r?\n|^)\s*?function\s(?!abc).*?\{
這裏是JavaScript的一個例子(示範文本是HTML):
var text = document.getElementById('main').innerHTML;
var regex = /(?:\r?\n|^)\s*?(function\s(?!abc).*?\{)/g;
var match = regex.exec(text)
while(match !== null) {
console.log(match[1]);
match = regex.exec(text);
}
<div id="main" style="white-space:pre;">
function abc123 {
function abc123 {
function something {
function abcsomething {
if {
function 123 {
no-match
</div>
+0
你的正則表達式會匹配非函數行,對不對? –
+0
你是對的,沒有想到這一點。我修好了 –
+0
感謝@ ssc-hrep3。我用JS自己試了一下,它可以工作。但是當我使用grep時,它不會給我任何匹配。 grep使用不同的正則表達式格式嗎? – samurdhilbk
相關問題
- 1. 正則表達式:名稱前綴從
- 2. 正則表達式:找到不以某個前綴開始的字符串
- 3. 正則表達式 - 查找所有不以特定前綴開頭的匹配詞
- 4. 查找名稱以某個後綴結尾的所有表格
- 5. php正則表達式名稱不以空格開頭
- 6. 查找以字符串開頭的所有併發的正則表達式(PHP)
- 7. 正則表達式來查找以「&」開頭的詞,並且以&
- 8. 匹配句子的正則表達式不以指定的前綴開頭
- 9. 查找以某個字母開頭的所有單詞
- 10. 正則表達式尋找以@ php開頭的用戶名
- 11. 正則表達式:查找文件不具有數字後綴
- 12. 使用sed替換不以某個前綴開頭的單詞
- 13. 在查詢中查找所有表名的正則表達式
- 14. Lucene:查找以特定前綴開頭的所有單詞
- 15. 正則表達式分析姓氏的前綴名稱
- 16. 查找包含箭頭符號的所有JavaScript函數的正則表達式?
- 17. PHP正則表達式來查找以_開頭的圖像
- 18. 正則表達式來查找以冒號開頭的單詞
- 19. 查找嚴格以$開頭的單詞,正則表達式C#
- 20. 如何使用正則表達式來查找以三個字符前綴開頭的單詞
- 21. Java正則表達式前綴後綴
- 22. 正則表達式替換字不以某些符號開頭
- 23. 正則表達式+ Python - 刪除所有以*開頭的行
- 24. 使用正則表達式來查找一個不以某個字符串開頭的模式
- 25. 正則表達式:找到沒有前綴的jquery中的所有類
- 26. 剝去每一行不以某個前綴開頭
- 27. 所有以「#」開頭但不含#define的文本的正則表達式正則表達式
- 28. 正則表達式 - 選擇所有不以特定數字開頭的文本
- 29. 找到後綴以前綴表達式
- 30. 正則表達式去除以某些文本開頭的行
對於一般的正則表達式這看起來像這樣(負向前視):'function(?!abc)[^ \ {] + \'{' –
@Micha elRitter它不工作! :( – samurdhilbk
哇...這是非常具有描述性的......「它不工作」...更多的細節?它與許多或幾個功能頭匹配嗎?...? –