2015-03-17 3 views
0

Новое на Perl, проблема. Я надеюсь, кто-то может мне помочь.Perl: удалить буквы, отличные от буквы, из строки

У меня есть строка Perl, которая разрешена только для букв от A до Z (заглавные и строчные буквы), цифры от 0 до 9 и символы «-» и «_». Я хочу удалить все несоответствующие символы из строки, оставив остальное нетронутым. Итак, «Hell @ _World» станет «Hell_World». Я знаю, что есть, вероятно, простой и простой способ сделать это, но я новичок в Perl и не знаю, как подойти к этому. Любая помощь будет принята с благодарностью.

ответ

0

Вы бы использовали подстановку с регулярным выражением (not). В то время как Perl предлагает ярлыки, вы можете увидеть детали более ясно, как это:

$string =~ s/[^[:alnum:]_-]//g; 

где [:alnum:] класс символов для буквенных и цифровых символов. «-» является последним в скобках, чтобы избежать путаницы в качестве части диапазона символов.

+0

Спасибо, Томас, это сделало :) – Jordan

+0

Нет проблем. (\ w более кратким, но сложнее запомнить заранее * что * включает). –

Смежные вопросы