Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Любые символы.

Сообщения:  [1-10]    [11-20]  [21-29] 

 
 автор: Николай2357   (10.07.2008 в 16:58)   письмо автору
 
   для: GeorgeIV   (10.07.2008 в 16:33)
 

Спасибо. Я в Гугле второй день эту тему лопачу, там копирайт один (это так называется?). Времени жалко. Но все равно спасибо.

   
 
 автор: GeorgeIV   (10.07.2008 в 16:33)   письмо автору
 
   для: Николай2357   (10.07.2008 в 15:50)
 

в гугле набираешь регулярное выражение и чиатешь все подряд. Мне самому, даже с немалой практикой, порой трудно до конца понять, как написать ту или иную регулярку., инет помогает.

   
 
 автор: Николай2357   (10.07.2008 в 15:50)   письмо автору
 
   для: GeorgeIV   (10.07.2008 в 15:17)
 

Да все так. А ковычка то причем тут, непойму. Вот по полочкам, как я понимаю. (Мне это очень важно понять, потому что на этом будет строится мое представление о регулярных)
\" означает, что выражение начинается с ковычки. Потом (.+?). Не совсем понятно, но примерно так: любой, в том числе и ковычка, могут встретится в тексте + один или более раз, ? может встретится только один раз или невстретиться совсем. Тоесть вместе должно быть только один раз. Потом опять \" то есть заканчивается ковычкой.
Вот тут начинается.
1.Почему не работает квантификатор {1} вместо +? \?(cлэш защитный, чтобы с тем вопросом не перепутать. Шутка)
2. Почему любые дручие символы, кроме ковычек могут встречаться в тексте больше одного раза.
3. Причеь здесь эта ковычка. Ему глубоко плевать на остальные символы. Я проверял.
Выходит, что такая конструкция (.+?) или (.*?) обозначает "все кроме ковычек". Любых. Обратные я тоже проверил.
Вот.
Нет на другие символы тоже реагирует, я ошибся. Получается, что в тексте между первым и последним символом не может встретиться того, что стоит рядом.
Пока не понимаю.
Посоветуйте что нибудь толковое почитать пожалуйста.
Спасибо.

   
 
 автор: GeorgeIV   (10.07.2008 в 15:17)   письмо автору
 
   для: Николай2357   (10.07.2008 в 15:08)
 

если точка - не остановится, если "/ав/", должен

   
 
 автор: Николай2357   (10.07.2008 в 15:08)   письмо автору
 
   для: GeorgeIV   (10.07.2008 в 14:53)
 

Все равно непонятно. Вот такой текст "ававава". По логике поиск должен остановиться на второй а.
Или если такой "авввввввва". Может так и есть, сейчас проверю.
Трудно это понять. Но уже чтото. Я первый раз с регулярными столкнулся, спасибо за ликбез.

   
 
 автор: GeorgeIV   (10.07.2008 в 14:53)   письмо автору
 
   для: Николай2357   (10.07.2008 в 14:36)
 

так потому что точка - это любой символ, поэтому тут жадность не появляется.
а ? после квантификатора означает, что поиск остановится при первом же совпадении, а не будет искаться максимальное

   
 
 автор: Николай2357   (10.07.2008 в 14:36)   письмо автору
 
   для: Trianon   (10.07.2008 в 12:46)
 

А как логически это понять?
* обозначает ноль или больше, а ?- 0 или 1. А когда *? все равно должно быть 0 или 1,
или + это один или больше, а +? должно тоже быть не больше одного вхождения. Однако конструкция (.*?) или (.+?) вылавливает все символы, даже если они повторяются (я проверял), а конструкция \"(.*?)\" или \"(.+?)\" вылавливает все, кроме ковычки.
Странно.

   
 
 автор: Николай2357   (10.07.2008 в 13:55)   письмо автору
 
   для: GeorgeIV   (10.07.2008 в 13:09)
 

Текст очень длинный, и там все что угодно может встретиться. И одинарные ковычки в том числе. Нужно выдернуть именно нужные куски.
Да, и еще, это в JS мне нужно было.
Вот теперь порядок.

   
 
 автор: Николай2357   (10.07.2008 в 13:53)   письмо автору
 
   для: GeorgeIV   (10.07.2008 в 12:42)
 

Огромное спасибо. Очень мне помогли. Пойду в магазин за другой книжкой, эта не полная. Про квантификаторы там есть, а про вопрос както упустили...

   
 
 автор: GeorgeIV   (10.07.2008 в 13:09)   письмо автору
 
   для: Николай2357   (10.07.2008 в 12:33)
 

Я только не понял, почему нельзя так
<?php
$text 
'Вова, "Вася", Петя, "Дима", Маша';
  
$str preg_replace('/"/',"",$text);
  
print_r($str);
?>
Или я не так понял?

   

Сообщения:  [1-10]    [11-20]  [21-29] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования