2016-08-11 8 views
-2

した.wav Iは、次のPerlコードを有する:正規表現[0-9] - [A-Z0-9]は

perl -ane 'm|/(..)/([1-9zo]+[ab])\.wav| || die "bad line $_"; print "$1_$2 $_";' 

代わりの/m/ad/11b.wavようなファイルパスに一致Iのようなファイルパスに一致する必要があります:

/m/6-23E5CD3A14BC47154F29E25578FC4.wav 
+1

は、スタックオーバーフローへようこそ。正規表現をタイトルにプログラムに入れるとどうなりますか?スラッシュの間に2文字一致する部分を調整して、1つのみを許容する必要があります。 2番目の文字クラスの後ろに適切な数量子を追加する必要があります。しかし、それはまさにすべてです。 –

+0

実際には16進文字に制限されているように見えるので、 '[0-9A-Z]'は広すぎるかもしれません。 'm | /./ [0-9] - [0-9A-F] {29} \。wav |'のようなものです。また、 '[[:xdigit]]' – shawnt00

答えて

-1

$ 1と$ 2をどのような形式にしますか?あなたは$ 1を "/ m"のようにしますか? $ 2を「6-23 ...」にしますか?他に何か?

m|(..)/([[:digit:][:upper:]-]+)(?>\.wav)$| || die; print "$1_$2 $_"; 

この正規表現が生成します。

/m_6-23E5CD3A14BC47154F29E25578FC4