Альтернатива регулярному выражению для разделения? - PullRequest
0 голосов
/ 09 декабря 2011

Как преобразовать следующую строку

"str 1<tab>str 2<tab>str 3<tab>str 4..........<tab>str n<tab and some whitespace>"

в

"*str 1*<tab>*str 2*<tab>*str 3*<tab>*str 4*..........<tab>*str n*<tab and some whitespace>"

, где str может быть «Stack - overflow» или «Super: User», то есть слова, содержащие некоторое пространство испециальные символы.

Я знаю, что мы можем использовать split и разобраться с этим.Есть ли способ использовать только = ~ s /// ..?

Заранее спасибо!

Троица

1 Ответ

4 голосов
/ 09 декабря 2011
$str =~ s/([^\t]+)/*$1*/g;  # Wrap all non-tab groups with '*'s

Чтобы справиться со «специальными символами», просто добавьте его в список нежелательных предметов:

$str =~ s/([^\t:-]+)/*$1*/g;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...