Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2024, 13:33
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 58

Регулярка. PHP


Я что-то не понял. Обратный слэш - это '\'? То, что их надо удваивать в самом регулярном выражении я знаю. Но зачем в этом примере сделали '/path\\/to\\/file/i'? Должно же быть '/path\/to\/file/i'. Разве нет?
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2024, 17:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от firep91613
Обратный слэш - это '\'?
Да
Сообщение от firep91613
зачем в этом примере сделали '/path\\/to\\/file/i'?
Сообщение от firep91613
Должно же быть '/path\/to\/file/i'. Разве нет?
Кто знает.
Ответить с цитированием
  #3 (permalink)  
Старый 28.04.2024, 09:22
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 58

Nexus,
скажите, тут ведь опечатка?
Ответить с цитированием
  #4 (permalink)  
Старый 28.04.2024, 17:51
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

firep91613, в php вообще нет модификатора шаблона M. Что значит "Модификатор M обозначает несколько необязательных модификаторов" - вообще загадка.
Выражение с одним бекслешем и двумя бекслешами работают одинаково, что меня удивило.
Я в качестве разделителей предпочитаю символ решетки, еще ни разу не пришлось его экранировать.

Модификаторы шаблонов
Разделители
Ответить с цитированием
  #5 (permalink)  
Старый 28.04.2024, 23:07
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

ну судя по всему(в доки не лез чисто по ситуации) экранирование в PHP работает не так как в js:
В js так:
\<спецсимвол> = <интерпретация символа>
\<обычный символ> = <обычный символ>
В php так:
\<спецсимвол> = <интерпретация символа>
\<обычный символ> = \<обычный символ>

Потому и работает так: / не является спецсимволом, а \ является, потому \\/ и \/ в итоге являются одной и той же строкой после интерпретации: '/path\/to\/file/i' === '/path\\/to\\/file/i' // PHP: true, JS: false

А "M" тут используемся в качестве заменителя для подстановки, как "N" или "X"
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 29.04.2024, 12:28
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 58

Aetae,
спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 01.05.2024, 17:19
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 58

Надо было просто читать дальше

Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему в JavaScript не изменили простую и очевидную штуку? jaroslav.tavgen Общие вопросы Javascript 39 21.04.2020 19:48
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Связь между страницами с javascript и php ... и обратно okrip25 AJAX и COMET 7 09.01.2012 14:43
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
Как передать картинку из javascript в php KIVagant AJAX и COMET 3 12.05.2010 11:54