2017-09-25 15 views
0

朝、すべて コロンの前の文字列をキャプチャする: コロンの後の文字列を比較し、コロンの前の値と等しい値を削除します。例えば記号の前に文字列を取り込む方法

aaa:aaa-bbb-ccc 

出力:

$string = "aaa:aaa-bbb-ccc"; 
$first =~ /(:.*\)/; //get aaa before the colon 
$others =$string=~ s/$first//; remove the same values after colon 

以下

aaa others:bbb,ccc 

私のコードあなたは私を助けてくださいことはできますか? (。* \)..

+0

を '' **後**ない**前**を意味します。あなたの質問を明確にしてください。あなたは2つの 'aaa'を持っているので、それは少し混乱しています。あなたの出力はあなたのパターンから非常に異なっています。 –

答えて

0

ありがとうこの作品

use strict; 
use warnings; 

my $s='aaa:aaa-bbb-ccc'; 
if ($s=~/^([^:]+):/) { 
    my $first=$1; 
    $s=~s/\Q$1\E://; 
    print "$first others:" . join ',', grep { $_ ne $first } split '-', $s; 
} 
# aaa others:bbb,ccc 
+0

($ s =〜/ ^([^:] +):/)コロンの前の文字列にアクセスするのはこれです –

+0

@Azhar:はい。文字列中の最初のコロンの左手にあるすべての文字を取得します。 – dawg

+0

@ysth:ありがとう!どちらも良い編集 – dawg

関連する問題