1
的tv.txt文件如下:爲什麼字符在正則表達式中的順序會影響sed?
mms://live21.gztv.com/gztv_gz 廣州臺[可於Totem/VLC/MPlayer播放,記得把高寬比設置成4:3]
mms://live21.gztv.com/gztv_news 廣州新聞臺·直播廣州(可於Totem/VLC/MPlayer播放,記得把高寬比設置成4:3)
mms://live21.gztv.com/gztv_kids 廣州少兒臺(可於Totem/VLC/MPlayer播放,記得把高寬比設置成4:3)
mms://live21.gztv.com/gztv_econ 廣州經濟臺
我想這組分成三組。
sed -r 's/([^ ]*)\s([^][()]*)((\(.+\))*|(\[.+\])*)/\3/' tv.txt
得到了結果:
[可於Totem/VLC/MPlayer播放,記得把高寬比設置成4:3]
(可於Totem/VLC/MPlayer播放,記得把高寬比設置成4:3)
(可於Totem/VLC/MPlayer播放,記得把高寬比設置成4:3)
當我把它寫到
sed -r 's/([^ ]*)\s([^][()]*)((\(.+\))*|(\[.+\])*)/\3/' tv.txt
它不能正常工作。
唯一的區別是[^][()]
和[^[]()]
; [^\[\]()]
,轉義字符都不能使其正常運行。
我想知道原因。