Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > скажите как выловить вот этот символ <


Автор: supervladislav 24.10.2009, 22:15
скажите никак немогу понять как через регулярные выражения выловить вот эти два символ < ,"
есть ли символьная заглушка ???

Автор: capitan 25.10.2009, 14:19
обратный слеш  \"

Автор: supervladislav 25.10.2009, 14:24
capitan, моглибы ввы написать пример 

Автор: capitan 25.10.2009, 14:37
http://www.pcre.ru/examples/links/text/36/  можно тут глянуть

http://www.pcre.ru/docs/php/text/stdsyntax/  тут можно почитать мануал. Читать раздел "Обратный слеш"


Автор: supervladislav 25.10.2009, 15:18
я честно говоря ничего непонял)))
/(<((a.+?)- вот тут вот разве символ <  экранирован 

Автор: capitan 25.10.2009, 15:40
< - не является спецсимволом. Его не нужно экранировать.

Автор: supervladislav 25.10.2009, 15:42
а покажите пожалуйста как надо экранировать " двойные кавычки 

Автор: capitan 25.10.2009, 15:52
\"

Автор: supervladislav 25.10.2009, 15:57
а двумя в каких случаях

Автор: brother79 28.10.2009, 06:51
Цитата(supervladislav @  25.10.2009,  15:18 Найти цитируемый пост)
я честно говоря ничего непонял)))
/(<((a.+?)- вот тут вот разве символ <  экранирован 


Вообще в php символы < > являются спец символами и их надо просто писать как \< или \> если строка в одинарных кавычках, и соотвественно \\< или \\> если строка в двойных дабы сначала для пхп проэкранировать \, который проэкранирует для регулярки спецсимвол.

Автор: capitan 28.10.2009, 13:29
brother79, Откуда Вы взяли что в регулярных выражениях необходимо экранировать < и > ? 

Символ '\' имеет несколько применений. Прежде всего, если он предшествует не буквенно-цифровому символу, он снимает с него специальное значение.  В метасимволах нет ни < ни >.

В частном случае для сопоставления с самим символом обратного слеша, используется запись '\\'. 

Дайте ссылку на инфу, откуда Вы такое прочитали.


Автор: brother79 28.10.2009, 13:47
Цитата(capitan @  28.10.2009,  13:29 Найти цитируемый пост)
Дайте ссылку на инфу, откуда Вы такое прочитали.



Читал бумажное издание :

Джеффри-фридл "Регулярные выражения" 2008г., там совы на обложке нарисованны, толстенькая книжка.
Цитата(capitan @  28.10.2009,  13:29 Найти цитируемый пост)
 В метасимволах нет ни < ни >.



Я счас не помню что они значат, но что-то типа начала и конца слова, сам натыкался на эту беду не раз, поэтому всегда экранирую, иначе не работает.
Цитата(capitan @  28.10.2009,  13:29 Найти цитируемый пост)
В частном случае для сопоставления с самим символом обратного слеша, используется запись '\\'. 

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

Добавлено через 5 минут и 20 секунд
А если так уж не верится,  можете попробовать выполнить код 

Код

preg_quote('<>');


И поссмотреть что вернёт.

Автор: capitan 28.10.2009, 14:04
brother79, теперь понятно. Я просто никогда не использую preg_quote. Я сам в регулярке все экранирую. А далее preg_match, preg_match_all и preg_replace 

Автор: brother79 28.10.2009, 14:13
Цитата(capitan @  28.10.2009,  14:04 Найти цитируемый пост)
 Для preg_quote действительно нужно экранировать. 


Всмысле "preg_quote экранирует", а то что-то не так в  выражение  "для preg_quote" в данном контексте smile.

Автор: capitan 28.10.2009, 14:18
Цитата(brother79 @ 28.10.2009,  14:13)
Цитата(capitan @  28.10.2009,  14:04 Найти цитируемый пост)
 Для preg_quote действительно нужно экранировать. 


Всмысле "preg_quote экранирует", а то что-то не так в  выражение  "для preg_quote" в данном контексте smile.

Описался  smile   

Мне только не очень понятно, зачем нужна preg_quote ?  Когда в патерне можно все сделать самому и так как нужно. Может из-за того что я не пользуюсь данной функцией.

Автор: brother79 29.10.2009, 06:02
Цитата(capitan @  28.10.2009,  14:18 Найти цитируемый пост)
Мне только не очень понятно, зачем нужна preg_quote ?  Когда в патерне можно все сделать самому и так как нужно. Может из-за того что я не пользуюсь данной функцией.



Всё просто. Предположим есть какой-то текст который где-то в переменной лежит и надо его использовать в регулярном выражении, тогда и применяется preg_quote, т.к. у тебя уже не константа, а переменная используется, и ты сам в неё можешь только всякими str_replace или preg_replace что-то экранировать, если бы не было preg_quote.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)