LINUX.ORG.RU

Различие регулярных выраженй на perl'е.

 ,


0

1

Господа перловоды проясните пожалуйста, чем по функционалу и отличаются ли два выражения:

s@^Parameter: .*$@@
s/^Parameter: .*$//
Второе выражение построил из первого и относительно его понимаю.
Есть ли различие между / и @?

Ответ на: комментарий от anonymous

А использование какого из этих знаков считается общепринятым ну или правилом хорошего тона?

unclear
() автор топика
Ответ на: комментарий от anonymous

Просто где не вижу везде написано что собака в перле используется для присвоения массивов, непонятно тогда откуда она вообще в данном контексте взялась.

unclear
() автор топика
Ответ на: комментарий от unclear

Второй. По умолчанию используется слеш.

Но при желании может поставить что угодно, хоть запятую, если у тебя в регулярном выражении есть слеш, но нет запятой.

router ★★★★★
()

@ (и многие другие символы) используются при определении регулярных выражений, когда в PATTERN или REPLACEMENT есть куча слешей (/), которые не хочется экранировать.

AITap ★★★★★
()

Нет. Это сделано для того, чтобы не было «косой чумы», как это бывает в других диалектах регэкспов. Когда регулярка должна выбирать выражения с обилием «/», то заборчики \/\/\/ превращаются в АдЪ. Для этого перл умеет менять «/» в s/// на другие символы.

Lilly
()

Всем спасибо, все ясно. В данном конретном случае собаки неуместны.

unclear
() автор топика
Ответ на: комментарий от qulinxao

Заметь, я не написал, что это придумал Ларри лично и это исключительная фишка перла, только написал, что перл так умеет. ☺

Lilly
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.