2012-07-27 331 views
3
function get_last_word($sentance){ 
    $wordArr = explode(' ', $sentance); 
    $last_word = trim($wordArr[count($wordArr) - 1]); 
    runDebug(__FILE__, __FUNCTION__, __LINE__, "Sentance: $sentance. Last word:$last_word",4); 
    return $last_word; 
} 

我想刪除{} 結果之間的所有文字應該是之間的所有文字:記事本+ +正則表達式刪除大括號

function get_last_word($sentance){} 

我曾嘗試

{+.*} 

,只有它的工作當大括號在同一行上時

回答

10

更新的版本支持多線路匹配(我現在使用的6.1.3)

在查找/替換對話框,下一到「正則表達式」單選按鈕,有一個名爲「」的複選框。匹配換行」,這意味着多行匹配。

然後,使用\{.*?\}(這是一個ungreedy匹配),以達到你想要的東西。

要注意的是它不爲你匹配括號,例如

foo { 
    bar { 
    blabalbla 
    } 
    xxx { 
    yyy 
    } 
} 

會給你

foo {} 
    xxx { 
    yyy 
    } 
} 

(我相信有在SO關於正則表達式的括號匹配,你可以看看其他的問題,但我不知道我˚F他們將在記事本工作++)

+0

多行匹配是主要問題,升級到最新版本問題解決了謝謝:) – ehmad11 2012-07-27 23:01:14

2

嘗試

(?<=\{)[^}]+(?=\}) 

這將匹配任何介於{和}記事本++

+1

這不是在NP ++ – ehmad11 2012-07-27 00:12:28

+0

工作在NP ++ – 2012-07-27 14:38:22

+0

沒有環視是什麼版本你在用嗎?我正在使用np ++ 6.1.4,並使用原始文章中的確切文本進行檢查。 – 2012-07-27 16:29:08

5

你應該罰款,當你只是{}取代\{[^{}]+\},反覆...

Regular expression visualization

+1

這個很好用 – Bob 2014-02-11 15:34:51

+0

謝謝@Bob – 2014-02-11 15:59:51

+0

謝謝! @Ωmega。這個表達對我有很大的幫助。儘管我從未完全理解這個意思。 – Bob 2014-02-14 22:24:45