есть строка подобна: 12 текст1 76 текст1 текст2 12 текст2 76 текст 3 текст 4
необходимо получить то, что между 12 и 76. Делаю так:
/12.*76/ - возвращает 12 текст1 76 текст1 текст2 12 текс2 76
если так:
/12.*?76/ - возвращает только 12 текст 76
как сделать чтобы возвращалось коллекция всех вхождений?
P.S. Delphi XE TregEx.
Спустя 1 час, 2 минуты, 44 секунды (17.01.2011 - 15:20) maurise написал(а):
$text = '12 текст1 76 текст1 текст2 12 текст2 76 текст 3 текст 4';В массиве $out будут все вхождения
preg_match_all("/12(.+)76/U", $text, $out, PREG_SET_ORDER);
Скобки нужны, чтобы в результат не попадали числа 12 и 76
Модификатор U - делает квантификаторы не жадными, чтобы получить все вхождения, а не то, что между первым 12 и последним 76
Спустя 7 минут, 41 секунда (17.01.2011 - 15:27) Andy.D написал(а):
Спасибо, сейчас проверю.
Спустя 2 часа, 9 минут, 46 секунд (17.01.2011 - 17:37) Andy.D написал(а):
/12(.*?)76/ - так заработало. Но результат не подходит.
Результат:
Всего совпадений 2
1 : 12 текст1 76
1.1 : текст1
2 : 12 текст2 76
2.1 : текст2
А хотелось бы
1 : текст1
2 : текст2
Результат:
Всего совпадений 2
1 : 12 текст1 76
1.1 : текст1
2 : 12 текст2 76
2.1 : текст2
А хотелось бы
1 : текст1
2 : текст2
Спустя 9 минут, 48 секунд (17.01.2011 - 17:47) DedMorozzz написал(а):
Цитата |
Модификатор U - делает квантификаторы не жадными |
Ого! Откуда такая информация?
Спустя 3 минуты, 23 секунды (17.01.2011 - 17:50) DedMorozzz написал(а):
$a = '12 текст1 76 текст1 текст2 12 текст2 76 текст 3 текст 4';
preg_match_all('#12(.*?)76#',$a,$arr);
echo "<pre>";
print_r($arr[1]);
echo "</pre>";
Спустя 14 минут, 59 секунд (17.01.2011 - 18:05) Andy.D написал(а):
Спустя 1 час, 6 минут, 34 секунды (17.01.2011 - 19:12) maurise написал(а):
Цитата (DedMorozzz @ 17.01.2011 - 19:47) | ||
Ого! Откуда такая информация? |
Из справочника. А разве не так?
Спустя 7 минут, 52 секунды (17.01.2011 - 19:20) DedMorozzz написал(а):
maurise
покажи Ибо не так. Совсем не так http://irbis-team.com/15/20/4 читай начало
покажи Ибо не так. Совсем не так http://irbis-team.com/15/20/4 читай начало
Спустя 23 дня, 20 часов, 21 минута, 9 секунд (13.02.2011 - 15:41) Dron19 написал(а):
$a = "12 текст1 76 текст1 текст2 12 текст2 76 текст 3 текст 4";
$a = preg_replace("/12(.*?)76(.*)\b/i","\\1",$a);
echo "<pre>" . $a . "</pre><br>";
Спустя 1 день, 11 минут, 27 секунд (14.02.2011 - 15:52) Velidan написал(а):
И опять доброго дня всем :) с праздником =) пусть все эмоции и отношения (как ваши атк и других людей к вам) всегда будут искренними и чистыми =)
(пишу здесь, не хочу плодить одинаковые темы)
опять таки возникла проблема с регулярками (казалось бы что научился уже составлять=\)
смотрите, у нас есть строка вроде
надо вырезать название сказки и занести его в один массив, а сам адрес в другой (просто юреэльку)
сам код для этого вроде бы написал, но не могу никак задать шаблон для preg_match_all
чтобы находила это всё:
сначала приведу пример для юреэльки. У меня получилось такое регулярное выражение (но оно не хчоет работать) это тестовый код, на котором пробую все свои "велосипеды"
а оно всё равно не находит, можете подсказать в чем ошибка?
заранее спасибо, извините если надоедаю
(пишу здесь, не хочу плодить одинаковые темы)
опять таки возникла проблема с регулярками (казалось бы что научился уже составлять=\)
смотрите, у нас есть строка вроде
<td colspan="2"><a href="http://www.storybook.ru/russian/?i_5=93" class=nun><strong>Баба - яга и заморышек</strong></a></td>
надо вырезать название сказки и занести его в один массив, а сам адрес в другой (просто юреэльку)
сам код для этого вроде бы написал, но не могу никак задать шаблон для preg_match_all
чтобы находила это всё:
сначала приведу пример для юреэльки. У меня получилось такое регулярное выражение (но оно не хчоет работать) это тестовый код, на котором пробую все свои "велосипеды"
$html='<a href="http://www.storybook.ru/russian/?i_5=251" class=nun>';
$pattern = '/(?<=\<a href=")(http:\/\/)?(www\.)?([\d\w]+(\.[\d\w]+)) (\/([\d\w]+\/)(\?[\w\=\d]+))?(?="class\=nun>)/';
$html = preg_replace($pattern, "[deleted]", $html);
print_r ($html);
а оно всё равно не находит, можете подсказать в чем ошибка?
заранее спасибо, извините если надоедаю