Forum Webscript.Ru
Программирование => Perl => Тема начата: от 24 Января 2002, 16:08:05
-
hi
стоит следующая задача
есть текст который удовлетворяет некоторому известному регулярному выражению
необходимо выделить те символы в тексте, которые дают совпадение, т.е. фактически надо просто выделить те неспцециальные символы и поледовательности, которые есть в регулярном выражении
проблема в том что надо выделить такие символы и последовательности не во всем тексте, а лишь в той его части, которая не покрывается символами поиска
простой пример
регулярное выражение: /cro(.{1})s/
текст: cross
нужно выделить cro и s в конце слова, а четвертую s выделять не надо
но этот пример лишь чатный случай, его реализовать несложно, а решить задачу в общем виде у меня не получается
помогите пожалуйста
-
m/(cro)(.{1})(s)/;
print $1,$3;
Вуаля! :)
perldoc perlop в части m//
-
m/(cro)(.{1})(s)/;
print $1,$3;
боюсь ты не совсем правильно меня понял
мне нужно не получить эти символы, а выделить их - например верхним регистром - в исходном тексте
т.е. я должен получить СROsS
а в общем случае мне нужны позиции тех символов которые надо выделить
регулярное выражение заведомо мне неизвестно, оно составляется на лету
-
Как объясняешь так и понял.:)
s/(cro)(.{1})(s)/uc($1).$2.uc($3)/e;
А в общем случае все зависит естественно от того, как будет конструироваться регулярное выражение.:)