Как я могу удалить escape-коды из строки в Perl? - PullRequest
0 голосов
/ 17 июля 2010

Исходная строка передается как:

FileSystems\/\1K-blocks=5036316, FileSystems\/\Available=3295944, FileSystems\/\Filesystem=/dev/cciss/c0d0p2, FileSystems\/\Use%=32%

В качестве вывода мне нужно следующее:

/ 1K-blocks=5036316, / Available=3295944, / Filesystem=/dev/cciss/c0d0p2, / Use%=32%

, но попытка удалить \ с помощью регулярного выражения дает мневсе виды головных болей.Я продолжаю в конечном итоге:

Fi eSys ems/☺K-b o ks=5036316  Fi eSys ems/Avai ab e=3295944  Fi eSys ems/Fi esy
s em=/dev/  iss/ 0d0p2  Fi eSys ems/SE%=32%  

Perl, по-видимому, видит его как управляющий или управляющий код и действительно испортил его.

Ответы [ 3 ]

3 голосов
/ 18 июля 2010

Я бы использовал другие разделители (кроме /), чтобы сделать регулярное выражение немного проще для глаз:

s!FileSystems\\/\\!/ !g
0 голосов
/ 21 июля 2010

Используя diff. разделители сделают это намного менее запутанным.

$line =~ s!FileSystem\\/\\!/\s!g

сделает трюк

0 голосов
/ 17 июля 2010

Эти две строки должны сделать это:

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