Подтвердить что ты не робот

Выключение прямой косой черты в регулярном выражении

Мой вопрос прост, и речь идет об ускорении регулярных выражений. Вам нужно избегать косой черты / в регулярном выражении? И как бы вы это сделали?

4b9b3361

Ответ 1

Какой контекст/язык? Некоторые языки используют / как разделитель шаблонов, поэтому да, вам нужно избежать этого, в зависимости от того, какой язык/контекст. Вы избежите этого, поставив перед ним обратную косую черту: \/ Для некоторых языков (например, PHP) вы можете использовать другие символы в качестве разделителя, и поэтому вам не нужно его избегать. Но AFAIK на всех языках, единственное особое значение, которое имеет значение /, - это назначенный шаблонный разделитель.

Ответ 2

Вот несколько вариантов:

  • В Perl вы можете выбрать альтернативные разделители. Вы не ограничены m//. Вы можете выбрать другой, например, m{}. Тогда бежать не нужно. На самом деле Дамиан Конуэй в "Perl Best Practices" утверждает, что m{} является единственным альтернативным разделителем, который следует использовать, и это усиливается Perl :: Critic (на CPAN). В то время как вы можете избежать использования различных альтернативных символов-разделителей, // и {} кажутся наиболее ясными для расшифровки позже. Однако, если какой-либо из этих вариантов приведет к слишком большому спасению, выберите тот, который лучше всего подходит для разборчивости. Типичными примерами являются m(...), m[...] и m!...!.

  • В тех случаях, когда вы не можете или предпочитаете не использовать альтернативные разделители, вы можете избежать прямой косой черты с помощью обратной косой черты: например, m/\/[^/]+$/ (используя альтернативный разделитель, который может стать m{/[^/]+$}, который может читаться более четко). Избежать косой черты с помощью обратной косой черты достаточно часто, чтобы заработать имя и страницу википедии: Синдром наклоняющейся зубочистки. В регулярных выражениях, где есть только один экземпляр, экранирование косой черты может не подняться до уровня, который считается помехой для разборчивости, но если он начинает выходить из-под контроля и если ваш язык разрешает использование альтернативных разделителей, как это делает Perl, это будет быть предпочтительным решением.

Ответ 3

Используйте обратную косую черту \ или выберите другой разделитель, т.е. m#.\d# вместо /.\d/ "В Perl вы можете изменить разделитель/регулярный выражение почти для любого другого специального символа, если вы преследуете его буквой m (для соответствия);"

Ответ 4

Если разделителем является /, вам нужно сбежать.

Ответ 5

Если вы используете С#, вам не нужно избегать его.