我有以下 PCRE2 正則運算式,可用于匹配和洗掉 .webVTT 字幕檔案(YouTube 的默認設定)中的時間戳行:
^[0-9].:[0-9].:[0-9]. $
這改變了這一點:
00:00:00.126 --> 00:00:10.058
How are you today?
00:00:10.309 --> 00:00:19.272
Not bad, you?
00:00:19.559 --> 00:00:29.365
Been better.
對此:
How are you today?
Not bad, you?
Been better.
我如何將這個 PCRE2 正則運算式轉換為一個慣用的(閱讀:sane-looking)等價于sed's 的正則運算式?
uj5u.com熱心網友回復:
使用你的正則運算式sed
$ sed -En '/^[0-9].:[0-9].:[0-9]. $/!p' file
How are you today?
Not bad, you?
Been better.
或者,不匹配以整數結尾的行
$ sed -n '/[0-9]$/!p' file
How are you today?
Not bad, you?
Been better.
uj5u.com熱心網友回復:
您的模式不是特定的 PCRE2 模式,僅使用 sed 您必須轉義\ 1 次或多次使其成為量詞。
在您使用點匹配任何字符(并查看示例資料)的位置上,也有一個數字。
您可以使模式更具體一些,并完全省略量詞。如果模式匹配,只需阻止列印行。
sed -n '/^[0-9][0-9]:[0-9][0-9]:[0-9]/!p' file
-n阻止 sed 中的默認列印!p如果模式不匹配,則列印該行
輸出
How are you today?
Not bad, you?
Been better.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475186.html
上一篇:在大寫單詞上拆分字串
