Пример текста:
прежде всего, кофе смешать с коньяком, приготовить прямоугольную форму для сборки торта.
бисквитное печенье савоярди обмакивать в кофе и выкладывать на дно формы так, чтобы оно было полностью закрыто.
торт бисквитный с начинкой из какао.
Пример сгенерированного выражения "торт бисквитный":
$count=preg_match_all("/торт[а-яА-Я]{1,5}\B[\sа-яА-Я0-9a-zA-Z()-–\+:,»«'|&\/]{1,13}б[ий]{1,1}скв[ий]{1,1}т[а-яА-Я]{1,5}\B/iu", $text, $matches);
Находит следующее:
Array ( [0] => Array ( [0] => торта. бисквитное ) )
т.е. с точкой между словами учлось, а просто "торт бисквитный" не учлось, в чём недочёты?
Спустя 5 минут, 31 секунда (26.10.2011 - 15:30) Winston написал(а):
Цитата (ZubeQ @ 26.10.2011 - 15:25) |
а просто "торт бисквитный" не учлось, в чём недочёты? |
Вместо
Цитата (ZubeQ @ 26.10.2011 - 15:25) |
торт[а-яА-Я]{1,5} |
Напиши
торт(?:[а-яА-Я]{1,5})?
Спустя 10 минут, 44 секунды Winston написал(а):
Ты еще в паттерн кучу ненужной фигни напихал, вот сокращенное немного.
preg_match_all("#торт(?:[а-яё]{1,5})?\B[\sа-яё\w()-–+:,»«'|&/]{1,13}б[ий]скв[ий]т[а-яё]{1,5}\B#iu", $text, $matches);
Результат
Array
(
[0] => Array
(
[0] => торт.
бисквитное
[1] => торт бисквитный
)
)
Спустя 2 часа, 15 минут, 41 секунда (26.10.2011 - 17:46) ZubeQ написал(а):
спасибо, буду иметь ввиду