我有數千個檔案,它們都有一個以#WAV開頭的單塊行。這個塊可以出現在檔案的任何地方,但總是一個 "塊"
#WAV 001.wav。
#WAV "something"
#WAV 21021029910291029.ogg。
這些塊可以是1000行,也可以像上面的例子那樣只有3行
。我需要將整個塊(所有以#WAV開頭的行)替換成一行。
所以上面的內容就會變成
EXAMPLE REPLACEMENT
注意,這需要適用于任何大小的塊,并且在#WAV之后的內容是不可預測的。
使用#WAV.*作為regex不會作業,因為它將替換該行的所有出現而不是整個塊。
使用#WAV(.*)#WAV并試圖替換捕獲組是行不通的,因為我不能確定捕獲組的 "終點"。
uj5u.com熱心網友回復:
使用
^#WAV.*(?:R#WAV.*)*
參見regex證明。
解釋
--------------------------------------------------------------------------------
字串的開頭
--------------------------------------------------------------------------------
#WAV '#WAV'/span>
--------------------------------------------------------------------------------
字符(w)和之間的界限。
不是字符的東西
--------------------------------------------------------------------------------
.*任何字符,除了
(0 or more times
(匹配最多數量))
--------------------------------------------------------------------------------
(?: 組,但do沒有捕獲(0 or more times
(匹配最多數量))。)
--------------------------------------------------------------------------------
R行結束
--------------------------------------------------------------------------------
#WAV '#WAV'/span>
--------------------------------------------------------------------------------
字符(w)之間的界限
and something that is not a word char.
--------------------------------------------------------------------------------
.*任何字符,除了
(0 or more times
(匹配最多數量))
--------------------------------------------------------------------------------
)* 分組結束
uj5u.com熱心網友回復:
你可以使用下面的RegEx:
(^#WAV.*[
] )
這將在單個選擇中匹配所有以#WAV開頭的行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/323802.html
標籤:
