我有一個文件佈局,我想刪除除括號內的數字之外的所有內容。佈局的一個例子是:正則表達式將匹配除括號內的所有內容外
C10438 03 EXT-OBLN-ASSN PIC X(05).
03 EXT-OWN-NAME PIC X(40).
我用
(^[^\(]*)
一切匹配的開括號。但是,當我嘗試
(^[^\(\d{2}\)]*)
我只得到在行的開始的空白處,我不知道爲什麼!
我有一個文件佈局,我想刪除除括號內的數字之外的所有內容。佈局的一個例子是:正則表達式將匹配除括號內的所有內容外
C10438 03 EXT-OBLN-ASSN PIC X(05).
03 EXT-OWN-NAME PIC X(40).
我用
(^[^\(]*)
一切匹配的開括號。但是,當我嘗試
(^[^\(\d{2}\)]*)
我只得到在行的開始的空白處,我不知道爲什麼!
我假設你想在Notepad ++中實現這個功能。
注:(^[^\(\d{2}\)]*)
包含邏輯錯誤:\(\d{2}\)
被認爲是一個序列字符的(如(22)
),但被置於其中的每個符號(比第一^
其他)被視爲一否定的字符類作爲一個單獨的符號。因此,(^[^\(\d{2}\)]*)
匹配並捕獲從字符串/行的開始起不是(
,數字,{
,2
,}
,)
零次或多次的所有組。
你需要一個正則表達式,將匹配任何字符,從線(^
)開始任何出現的次數(.*
)到(
跟着一個或多個數字(\d+
),然後接着用)
任何任何字符的數量,但換行符。
使用
^.*\((\d+)\).*
而且隨着$1
取代。
如果它不是記事本+ +,請確保您通過/m
MULTILINE修改,這樣可以^
匹配行的開頭,而不是整個字符串。
Unicode類別類在某些正則表達式中不可用。 –
您的嘗試的部分問題是方括號之間的東西。這些是字符類的* literal *字符。 – shawnt00