Могу ли я получить результаты из регулярного выражения в новую строку? - PullRequest
0 голосов
/ 26 ноября 2018

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

$string1 =~ s/[aeiouy]//gi;

Но каков синтаксис для сохранения исходной строки?т.е.

$string2 = $string1 = s/[aeiouy]//gi;

Так что $ string1 - это до, а $ string2 - после.

Уверен, что есть способ, спасибо за вашу помощь

1 Ответ

0 голосов
/ 26 ноября 2018

Если у вас есть Perl 5.14 или лучше, используйте модификатор /r .

$string1 = "cat toy";
$string2 = ($string1 =~ s/[aeiouy]//gir);
print $string1;       # "cat toy", unchanged
print $string2;       # "ct t",    with modifications

Он также работает с оператором транслитерации

$string1 = "cat toy";
$string2 = ($string1 =~ tr/aeiouy/123456/r);
print $string1;       # "cat toy"
print $string2;       # "c1t t46"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...