Я хотел бы использовать регулярное выражение для вставки конкретных символов в выражении регулярного выражения? - PullRequest
0 голосов
/ 26 ноября 2018

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

Чтобы слово "TABLE" стало "T% A% B% L% E%"

Могу ли я попросить синтаксис для такого подвига?

Большое спасибо

Ответы [ 3 ]

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

Разбейте строку на символы, затем соедините их с тем, что вы хотите между ними;также добавьте, что

my $res = ( join '%', split //, $string ) . '%';

Простым способом с регулярным выражением

$string =~ s/(.)/$1%/g;

, где с модификатором /r вы можете сохранить $string и вернуть вместо него измененную строку

my $res = $string =~ s/(.)/$1%/gr;
0 голосов
/ 26 ноября 2018

Вы также можете использовать фоновый просмотр

my $s = "table";

$s=~s/(?<=.)/%/g;

print $s;

Если ваша версия> 5.14, вы можете использовать \ K

$s=~s/.\K/%/g;
0 голосов
/ 26 ноября 2018

Вы можете использовать эту команду,

echo TABLE|perl -pe 's/\w/$&%/g'

Это выводит T%A%B%L%E%

ИЛИ (если ваши данные содержатся в файле)

perl -pe 's/\w/$&%/g' test.pl

Вы можете заменить \w на [a-zA-Z], если вы просто хотите заменить на алфавиты, поскольку \w соответствует номерам алфавитов и подчеркиванию.

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