2013-07-05 12 views
0
$_ =~ s/\#N\/A//g; 

это замена \ 3N \ с помощью A \ эти специальные символы в perl? Извините, я даже не знаю, как искать этот синтаксис.Что это за замена?

+0

Это регулярное выражение perl. Попробуйте http://perldoc.perl.org/perlre.html для получения дополнительной информации о регулярных выражениях perl. Кроме того, google «perl operator = ~» может дать вам некоторые подсказки. –

+0

@MichaelKohne, Google молча игнорирует часть '= ~'. – doubleDown

+0

@doubleDown - Интересно. Не знаю, почему я получил перл как мой первый удар раньше. Теперь я получаю perlop, который сообщает, что такое оператор = ~, и ссылки perlre. Так оно работает в любом случае. –

ответ

5

Удаляет # N/A из строки $_.

\#N матчи #N (спасаясь от #)

\/A спичек /A (Ускользающий /)

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

$_ =~ s|#N/A||g; 
3

Like Hunter McMillen сказал: он удаляет #N/A из переменной по умолчанию.

Но вы можете написать что-то более удобным для чтения и короче:

s!#N/A!!g; 
1

Как уже упоминалось @Hunter McMillen, это просто нормальное регулярное выражение замещения со специальными символами убежали. Это, вероятно, лучше записать как

s|#N/A||g 

или

s{#N/A}{}g 
0

В Дамиана Конвея Perl Best Practices, чтобы сделать регулярные выражения более читаемым, он рекомендует:

s{ \# N \/ A }{}gmsx; 

То есть:

  1. Используйте фигурные скобки вокруг картины и замены.
  2. Используйте пробелы для разделения частей рисунка с помощью переключателя/x.
  3. Обратный слэш исключает не буквенно-цифровые символы, даже если они не являются метасимволами.