를 예상대로 일치하지 않습니다정규식 나는 다음과 같은 코드를 실행하고
#!/usr/bin/perl -w
my $filter1="^p1c|^p2c|^p3c|^p11c|^p23c|^p105csi1m1|^p105csi1m2|^p105csi1m13|^p105csi2m14|^p101csi1m1|^p101csi1m2|^p101csi1m13|^p101csi2m14|^p103csi1m1|^p103csi1m2|^p103csi1m13|^p103csi2m16|^p102csi1m1|^p102csi1m2|^p102csi1m13|^p102csi2m16|^p100csi1m4|^p100csi1m5|^p100csi2m13|^p100csi1m14";
my $filter2="^p105csi2m13|^p105csi1m14";
$n1="p105csi1m14";
my $m1 .= "$n1 " if($n1 =~ m/$filter1/);
my $m2 .= "$n1 " if($n1 =~ m/$filter2/);
print "\nmatch 1 => $m1\n";
print "\nmatch 2 => $m2\n";
코드 위의 출력은 다음과 같다 :
match 1 => p105csi1m14
match 2 => p105csi1m14
예상되는 결과는 다음과 같다 :
match 1 =>
match 2 => p105csi1m14
왜 그런 식으로 행동하는지 잘 모르겠습니다. 누군가 위의 문제를 해결하도록 도울 수 있습니까?
'p105csi1m1'은'p105csi1m14'의 부분 문자열입니다. –
'^ p105csi1m1' 정규 표현식은 당신의 문자열과 일치합니다. 정규식 끝 부분에'$ '를 쓰려고 했습니까? – geoffspear
아 ... 도움이 ... 너무 감사합니다. – user2083779