Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.156.156] |
|
Сообщ.
#1
,
|
|
|
Есть процедура для разбиения текста на слова
function docindex($text) { $pattern = '/([А-Яа-яЁёA-Za-z]+)/u'; preg_match_all($pattern, $text, $words); $stemmer = new Lingua_Stem_Ru(); $ne=false; foreach ($words[0] as $key=>$word) { $r=0; if ($ne) $r=1; if ($word=="не") $ne=true; else $ne=false; $w=$stemmer->stem_word($word); if (strlen($w)>=3) $res[]=array($w, $r); } return $res; } Но поочему-то функция preg_match_all возвращает пустой массив. В чем может быть дело? |
Сообщ.
#2
,
|
|
|
А если флаг 'u' убрать?
|
Сообщ.
#3
,
|
|
|
То же самое.
|
Сообщ.
#4
,
|
|
|
Может не находит ничего? Строка-то не пуста?
Проверь что именно возвращает preg_match_all: if (!preg_match_all(...)) die('ничего не найдено'); |
Сообщ.
#5
,
|
|
|
Строка точно не пустая. Может надо локаль установить,
|
Сообщ.
#6
,
|
|
|
1 - а если в патерне обрамляющие прямые слеши убрать (и флаги тоже конечно)?
2 - ну и на кройняк, патерн в двойные кавычки? |
Сообщ.
#7
,
|
|
|
Цитата K313 @ 1 - а если в патерне обрамляющие прямые слеши убрать (и флаги тоже конечно)? то будет ошибка Цитата K313 @ 2 - ну и на кройняк, патерн в двойные кавычки? то ничего не изменится Добавлено $pattern = '#([a-zа-я]+)#isu'; Добавлено З.Ы. "ё", насколько я помню, в юникоде не надо выносить за пределы инервала, т.к. это только в cp866 (ну может ещё cp1251) чаркод буковки Ё убегал за пределы интервала чаркодов а-я |