Perl: Как я могу извлечь выгоду из регулярного выражения? - PullRequest
4 голосов
/ 28 июня 2011

Я использую это регулярное выражение для поиска паттернов в геноме.

$string =~ /(?i)a+t?|(?i)t+/g

Чтобы сделать вывод более легким для чтения, я бы хотел изменить его, чтобы он использовал заглавные буквы длиной от 4 до 7 символов. Также не следует путать переменные $+[0] или $-[0].

способ, которым я делаю вывод, состоит в том, чтобы получить подстроку из большего строкового файла на основе '$ + [0]' и '$ + [0]', я не хочу распечатывать совпадения регулярных выражений Я печатаю огромные строки корректоров и хочу, чтобы спички выделялись.

если вам действительно нужен код, над которым я работаю, вы можете получить его здесь

1 Ответ

10 голосов
/ 28 июня 2011

С соответствующими тестами (для вашего соответствия и для длины (вероятно, нужны группы символов с квантификаторами, такими как {4,7}), без примерного содержания, которое вам оставлено), вы можете использовать подстановку eval s/(match)/uc($1)/eg, которая будет приниматьсопоставьте строку и сделайте ее заглавной, затем замените совпадение заменой.

Как всегда, читайте подробнее на perldoc perlre perldoc perlreref perldoc perlretut

Как знаменатель, я всегда задавался вопросом, является ли геном хорошим кандидатом на Regexp::Grammars?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...