-2
我有以下Perl代碼:正則表達式匹配[0-9] - [A-Z0-9] .wav格式
perl -ane 'm|/(..)/([1-9zo]+[ab])\.wav| || die "bad line $_"; print "$1_$2 $_";'
代替匹配像/m/ad/11b.wav
文件路徑我需要匹配像一個文件路徑:
/m/6-23E5CD3A14BC47154F29E25578FC4.wav
我有以下Perl代碼:正則表達式匹配[0-9] - [A-Z0-9] .wav格式
perl -ane 'm|/(..)/([1-9zo]+[ab])\.wav| || die "bad line $_"; print "$1_$2 $_";'
代替匹配像/m/ad/11b.wav
文件路徑我需要匹配像一個文件路徑:
/m/6-23E5CD3A14BC47154F29E25578FC4.wav
你想要什麼形式的$ 1和$ 2?你想讓$ 1變成「/ m」嗎? 你想要2美元是「6-23 ...」嗎?還有別的嗎?
m|(..)/([[:digit:][:upper:]-]+)(?>\.wav)$| || die; print "$1_$2 $_";
此正則表達式產生:
/m_6-23E5CD3A14BC47154F29E25578FC4
歡迎堆棧溢出。如果將正則表達式放入程序的標題中會發生什麼?您需要調整斜線之間匹配兩個字符的部分以允許一個字符;你需要在第二個字符類後添加一個合適的量詞。但這只是一切。 –
看起來你實際上只限於十六進制字符,所以'[0-9A-Z]'可能太寬泛了。像'm | /./ [0-9] - [0-9A-F] {29} \。wav |'。你也可以使用'[[:xdigit]]' – shawnt00