2016-08-03 17 views
3

私の入力データは以下の通りです。私は-の6位と7位の間で単語をグループ化したいと思います。このためn番目の文字を一致させる方法はありますか?

my $sa = "a1a1a1-b1b1b1-c-ddd-eee-fff-gggggg-hHhH-iiii-j-KKKKK"; 

、実際の正規表現は、正規表現を構築するために

/[^-]+-[^-]+-[^-]+-[^-]+-[^-]+-([^-]+)-/ 

だった、私は私の疑問、以下のように

my $avc = "[^-]+-" x 5 . "([^-]+)-"; 

my $ar = qr"$avc"; 

$sa =~m/$ar/g; 

print $1; 

を試みたが、いずれかのオプションがあります内で利用可能です正規表現。 xを使用しないでください。どのように私は単一の正規表現でそれを行うことができますか?

+3

'/(?:[^ - ] + - ){5}([^ - ] +) - /' –

+2

はなく、「スプリットを使用' 'my $ value =(split/- 、$ sa)[6];' – Sobrique

答えて

関連する問題