Я пытаюсь найти строки, соответствующие определенному шаблону, а затем обратный перевод этого шаблона, за которым следует он, разделенный буквой O.
Правило перевода: /ABC/XYZ.
Пример совпадения: CCBAOXYZZ
Первый раздел соответствует шаблону [ABC]{3,25}. Затем есть буква O
, которая также соответствует. Затем мы видим, что XYZZ является обратным значением CCBA с примененным выше переводом.
Мне удалось записать правило tr в мою обратную ссылку. Но я не могу понять, как сделать обратное.
while (my $input_string = <sample_input>) {
push @hit, $1 while $input_string
=~ m{
(([ABC]{3,25})
O
(??{ $2 =~ tr/ABC/XYZ/r}))
}xg;
}
Правильно ли добавить «обратную» функцию в третью строку регулярного выражения таким образом: (??{ $2 =~ tr/ACGT/TGCA/r;reverse}))
?
Как сопоставить reverse tr
из $2?