LINUX.ORG.RU

Вопрос про регулярные выражения в перле


0

0

Вопрос заключается в следующем: есть строка s = 'a xxxx c xxxxx a xxxx a xxxcvxxx'; а найти надо часть этой строки, которая начинается с последней 'a' - и до конца строки. s =~ /(a.*$)/; - так под образец подходит вся строка, а как правильно ?

anonymous

Re: Вопрос про регулярные выражения в перле

слушай, а обязательно использовать =~ ?
вот то, что сразу пришло в голову:
split(/ a /,$s);
$_[$#_] - то что нужно

если чё ещё в голову придет в ближайшее время - напишу

anonymous ()

Re: Вопрос про регулярные выражения в перле

еще можно
$s=~/(.*a)/;
print $';
#$'-все после совпадения ($'-до) etc....

или
$s=~s/(^.*a)//;
print $s;

Anonymous ★★★★★ ()

Re: Вопрос про регулярные выражения в перле

2 justme: Вот это как раз то что было нужно, спасибо !

anonymous ()

Re: Вопрос про регулярные выражения в перле

Логика такая, что после последней буквы 'a' могут идти только буквы, отличные от 'a'. Ну и кончается всё, естественно, концом строки (долларом). Если всё ещё непонятно, то скажите, я попробую подробнее объяснить.

justme ()

Re: Вопрос про регулярные выражения в перле

[^a]* = не a любое число раз

Anonymous ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.