2014-01-24 3 views
0

Я читал этот пост, но он не решить мою проблему: Regex: matching up to the first occurrence of a characterMatching до первого вхождения символа

У меня есть эта переменная:

$attributes = ID=CUFF.1;Name=CG12402-RB;Note=Parial_gene 

Я написал этот сценарий:

if ($attributes =~ /Name=([^;]*)/) { 
      $genename = $-[0]; 
     $name = substr($attributes, $genename); 

Если я печатаю $name это выход: Name=CG12402;Note=Parial_gene

Но я хочу, чтобы мой выход, как это: Name=CG12402

Может кто-нибудь мне помочь?

ответ

2

Попробуйте использовать это:

/(Name=[^;]+)-/ 

Вашего оригинальное регулярное выражение /Name=([^;]*)/ будет захватывать любой символ после того, как буквальный Name= до ;

Однако, для примера, вы предоставляете ваши регулярные выражения не должен производить результат, который вы сказал он. Он должен зафиксировать: CG12402-RB

+0

спасибо, что это работает !! – userbio

Смежные вопросы