Мой вопрос прост, и речь идет об ускорении регулярных выражений. Вам нужно избегать косой черты /
в регулярном выражении? И как бы вы это сделали?
Какой контекст/язык? Некоторые языки используют /
как разделитель шаблонов, поэтому да, вам нужно избежать этого, в зависимости от того, какой язык/контекст. Вы избежите этого, поставив перед ним обратную косую черту: \/
Для некоторых языков (например, PHP) вы можете использовать другие символы в качестве разделителя, и поэтому вам не нужно его избегать. Но AFAIK на всех языках, единственное особое значение, которое имеет значение /
, - это назначенный шаблонный разделитель.
В Perl вы можете выбрать альтернативные разделители. Вы не ограничены m//
. Вы можете выбрать другое, например m{}
. Тогда экранирование не требуется. На самом деле, Дамиан Конвей в "Perl Best Practices" утверждает, что m{}
является единственным альтернативным разделителем, который должен использоваться, и это подкрепляется Perl:: Critic (на CPAN). Хотя вы можете уйти с использованием различных альтернативных символов-разделителей, //
и {}
кажутся наиболее ясными для расшифровки позже. Однако, если любой из этих вариантов приводит к слишком большому экранированию, выберите тот, который лучше всего подходит для разборчивости. Обычными примерами являются m(...)
, m[...]
и m!...!
.
perl -pi -e "s/chdir .*/chdir $ROBOT_PATH/g" startup_scripts/supervisord.conf
И у меня perl -pi -e "s/chdir .*/chdir $ROBOT_PATH/g" startup_scripts/supervisord.conf
конфликты с косой чертой.
Используйте обратную косую черту \
или выберите другой разделитель, т.е. m#.\d#
вместо /.\d/
"В Perl вы можете изменить разделитель/регулярный выражение почти для любого другого специального символа, если вы преследуете его буквой m (для соответствия);"
Если разделителем является /, вам нужно сбежать.