Как я могу заменить совпадения регулярных выражений и отобразить замены в Perl?

StackOverflow https://stackoverflow.com/questions/420410

  •  05-07-2019
  •  | 
  •  

Вопрос

То есть:

echo H#97llo | MagicPerlCommand

Стандартный вывод:

Hallo

были ли MagicPerlCommand чем-то вроде

perl -pnle "s/#(\d+)/chr(\1)/ge"

(но это не работает).

Это было полезно?

Решение

Изменять \1 к $1 в вашей MagicPerlCommand.А \digit Стиль обратной ссылки не работает, когда вычисляется выражение замены (т.е. s///e).

У меня это сработало в Windows и Linux.

Другие советы

В соответствии с j_random_hacker ответ, вы должны использовать $1 скорее, чем \1.

Это связано с тем, что использование '/eМодификатор регулярного выражения означает, что правая половина — это просто еще одно обычное выражение Perl, а не подстановка регулярного выражения.Поскольку это Perl, вам придется использовать синтаксис Perl для ссылки на скобки, а не обычный синтаксис регулярных выражений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top