![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
Например есть словосочетания: "красная машина, рыжие волосы, опытное направление физики, .... "
Нужно регулярным поископ найти следующее. Идеальный вариант: array("красн машин","рыж волос","опытн направлен физик" ..... Допустимый вариант (уберать два символа с конца каждого слова): array("красн маши","рыж воло","опытн направлен физи".... Т.е надо чтобы просто отсекалось окончание, два последних символа каждого слова в фразе. Это сообщение отредактировал(а) Myp3uk - 15.9.2006, 22:00 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
Myp3uk, на самом деле, окончаний имеется ограниченный набор: "ая", "ое", "ия" и т.д.. В общем, можно жестко задать. это идея №1.
идея №2: окончания только гласные. Т.е. находим последнюю гласную и от неё режем слово. Оба варианта примитивные и неточные. Но есть. |
|||
|
||||
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
Это понятно. Меня именно интересует регулярное выражение которое будет отсекать у всех слов в выражении. Т.е. я могу написать рег.выр. которое будет отсекать окончания у отдельных слов или у последнего слова в выражении, а вот у каждого слова в выражении не получается не получается.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
replace(/..\b/g,''), будучи применённым к строке, удалит тебе по два символа в конце каждого слова. но тут - нет работы с тем, какие там буквы. тем более, что удаляться буквы будут даже у трёхбуквенного слова, что явно не подходит. вобщем, если есть алгоритм какой-нить, описывай. будем думать.
Добавлено @ 23:22 сорри, перепутал с javascript. Добавлено @ 23:23
|
|||
|
||||
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
Вот вроде работает. Особой строгости тут и не надо. Все дело вот в чем. Надо выделить в тексте ключевые слова, которые вводит пользователь. Соответственно это могут быть и фразы и слова поотдельности. Я не особо силен в регуляпных выражениях, так что строго не судите. |
|||
|
||||
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
Странно....
У меня на компе все прекрасно работает, а вот на сервере не хочет... На сервере он не обрезает слова. В чем может быть проблема? Добавлено @ 23:52 Понял в чем проблема. Он русский текст не расценивает как символы, т.е. поиск с таким шаблоном \w+ ни чего не дает... Как с этим бороться? Это сообщение отредактировал(а) Myp3uk - 15.9.2006, 23:45 |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
На что-нибудь ругается? -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
При этом если есть английские слова в тексте он их находит... А русские нет.
Статьи хранятся в базе MySQL в blob поле. Может из-за этого косяк? Добавлено @ 23:57 Ни на что не ругается. Просто не воспринимает русские символы в статье. |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Не уверен, но попробуй:
Добавлено @ 00:02 Кстати, кодировка на хосте какая? -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
Не помогло.
Вот простейший пример:
В результате работы (как я понимаю) все слова должны будут выделены в тэг <b>. У меня на компе так и проиходит. А вот на сервере выделяются только Ancord Group Ltd; Че делать? Добавлено @ 00:11 А как узнать кодировку на хосте? |
|||
|
||||
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
Неужели ни кто не сталкивался с этой проблемой.
До сих пор актуально. Не могу решить проблему. |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Попробуй узнать у админов сервака. Какая кодировка юзается для твоего хоста. Сталкивался я, у меня была похожая проблема, кодировка хоста по дефолту была koi8-r, пришлось делать маску типа:
Это границы начала и конца русских символов в кодировке кои8. Для вин1251 надо посмотреть. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Myp3uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.7.2006 Репутация: нет Всего: нет |
Блин стока бился над этой херью, а оказалось что просто надо писать локаль не ru_RU.cp1251, а ru_RU.CP1251. Т.е. большими буквами... Всем спасибо....
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |