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

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

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Пожалуйста, помогите с регулярными выражениями
 
 автор: pazha   (26.07.2012 в 18:55)   письмо автору
 
 

Здравствуйте, уважаемые пользователи и администраторы данного раздела! Прошу Вас помочь мне. В этом топике http://softtime.ru/forum/read.php?id_forum=1&id_theme=87213 я спросил как решить мою задачу, и меня направили в этот раздел. Пожалуйста, помогите

  Ответить  
 
 автор: Deed   (30.07.2012 в 12:26)   письмо автору
 
   для: pazha   (26.07.2012 в 18:55)
 

Вероятно, confirm имел в виду такую конструкцию:

<?php
$str
="0,1,1,1,0,1,1,1,0";
preg_match_all("/0,1,1,1,0/",$str,$matches);

echo 
count($matches); // Все равно массив $matches будет содержать один элемент.


?>


Дело в том, что и в первом примере, и в этом в строке "0,1,1,1,0,1,1,1,0" ищется строка "0,1,1,1,0", и после первого прохождения поиска в обоих случаях в искомой строке находится 0,1,1,1,0, а следующая позиция посика начинается с 1 и находит 0,1,1,1,0,1,1,1,0, "1,1,1,0", что не совпадает с условием поиска - 0,1,1,1,0.

Значит, Вам нужна такая регулярка:

<?
$str
="0,1,1,1,0,1,1,1,0";
preg_match_all("/(?<=0,)1,1,1(?=,0)/",$str,$matches);

echo 
"<br>".count($matches[0]); // 2
?>
<pre>
<?
print_r
($matches[0]);

?>
</pre>

То есть, ищем все "1,1,1", перед и до которых стоит нуль.

  Ответить  
Rambler's Top100
вверх

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