Есть ли perl, эквивалентный sed или vim'ам `\ l` и` \ u` при замене? - PullRequest
0 голосов
/ 15 июня 2019

в sed(1) & vim(1), в синтаксисе подстановки регулярных выражений есть набор «операторов», \u, \l, \U, & \L. Эти транслированные символы либо в нижний, либо в верхний регистр. Поэтому, если бы вы набрали s/(*.)/\L\1/g, теоретически она бы перевела всю строку в нижний регистр.

Есть ли эквивалентная функциональность в Perl? Это что-то или эквивалентное ...

while(<>) {
  s/(*.)/\L\1/g;
}

непросроченный

1 Ответ

6 голосов
/ 15 июня 2019

Да, все они существуют в Perl.

Но ваше регулярное выражение недействительно, я думаю, вы хотите:

while(<>) {
  s/(.*)/\L$1/g;
}

Если вы хотите, чтобы вся строка была в нижнем регистре, я предлагаю вам lc :

while(<>) {
  $_ = lc $_;
}
...