«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как избежать обратной косой черты в регулярных выражениях PHP?

Как избежать обратной косой черты в регулярных выражениях PHP?

Опубликовано 17 ноября 2024 г.
Просматривать:669

How to Escape Backslashes in PHP Regular Expressions?

Экранирование обратной косой черты в регулярных выражениях PHP

Чтобы экранировать обратную косую черту в шаблоне регулярного выражения PHP, можно использовать три обратных косых черты (\\ ) или четыре обратных косых черты (\\\\). Хотя оба варианта дают успешные совпадения, существуют небольшие различия в их интерпретации и использовании.

Тестовые примеры:

Рассмотрите следующие тестовые примеры:

// TEST 01: (3 backslashes)
$pattern = "/^[\\\]{1,}$/";
$string = '\\';

// ----- RETURNS A MATCH -----

// TEST 02: (4 backslashes)
$pattern = "/^[\\\\]{1,}$/";
$string = '\\';

// ----- ALSO RETURNS A MATCH -----

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

Интерпретация и использование:

  • Три обратных косых черты (\\): При использовании трех обратных косых черт шаблон интерпретируется как соответствующий одной обратной косой черте (\ ) характер. Однако если следующий символ в шаблоне также является обратной косой чертой, буквальную обратную косую черту невозможно сопоставить, используя только три обратных косых черты.
// Matches a single backslash
preg_match( '/\\\/', '\\' );      // 1

// Fails to match a literal backslash followed by a backslash
preg_match( '/\\\\\s/', '\\s' );   // 0
  • Четыре обратной косой черты (\\\\): С другой стороны, использование четырех обратных косых черт всегда соответствует буквальной обратной косой черте, независимо от следующего символа. Это связано с тем, что четвертая обратная косая черта экранирует третью обратную косую черту, что делает ее буквальным символом.
// Matches a literal backslash followed by any character
preg_match( '/\\\\\s/', '\\s' );   // 1

Рекомендация:

На основании этих наблюдений рекомендуется всегда использовать четыре обратных косых черты (\\\\) в шаблоне регулярного выражения при поиске соответствия обратная косая черта. Такой подход обеспечивает согласованность и предсказуемость сопоставления с образцом.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3