Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярка, ограничить длину слов 
V
    Опции темы
bars80080
Дата 22.12.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



есть строка, в ней слова

надобно пропустить строку через такую регулярку, чтобы на выходе были только кириллические, не превышающие определённую длину

такая штука
Код

preg_match_all('/([а-яА-ЯЁё\-]{2,32})/', $text, $ok);


дробит слова больше определённого значения (32), а надо, чтобы просто игнорировала
PM MAIL WWW   Вверх
enoff
Дата 22.12.2010, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Код

preg_match_all('/(?:[^а-яА-ЯЁё\-]|^)([а-яА-ЯЁё\-]{2,32})(?:[^а-яА-ЯЁё\-]|$)/u', $text, $ok);

PM MAIL ICQ Skype GTalk   Вверх
bars80080
Дата 23.12.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



что-то работает как-то не так. выкидывает через слово, хотя они и удовлетворяют длине
PM MAIL WWW   Вверх
patap
Дата 23.12.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



вроде оно
Код

(^|\b)([а-яА-ЯЁё\-]{2,32}(\b|$))


хотя оно нормально схавает такую строку, результат будет 3 слова
Код

арбуз\\\*(?*(:%№пиво*?;?:;водка


Это сообщение отредактировал(а) patap - 23.12.2010, 16:44


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
enoff
Дата 23.12.2010, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Цитата(patap @  23.12.2010,  16:42 Найти цитируемый пост)
\b

в конец слова не только русские буквы входят.
bars80080, хм, странно.
текст в какой кодировке? у меня там модификатор u - для юникода, может в этом дело.
PM MAIL ICQ Skype GTalk   Вверх
bars80080
Дата 24.12.2010, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(enoff @  23.12.2010,  20:49 Найти цитируемый пост)
текст в какой кодировке? у меня там модификатор u - для юникода, может в этом дело. 

я его удалял. если оставить, то на cp1251 просто ошибку писал о некорректных символах
PM MAIL WWW   Вверх
enoff
Дата 24.12.2010, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



bars80080, еще раз перепроверил, все работает.
Кусок текста можно? Так чет не могу догадаться, в чем дело.

Код

preg_match_all('/(?:[^-а-яА-ЯЁё]|^)([-а-яА-ЯЁё]{2,32})(?:[^-а-яА-ЯЁё]|$)/', $text, $ok);

ничего не изменилось?
PM MAIL ICQ Skype GTalk   Вверх
bars80080
Дата 24.12.2010, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



завтра, я только на работе могу проверить
PM MAIL WWW   Вверх
bars80080
Дата 24.12.2010, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



хоть убей, но у меня не работает:

Код

$text = 'в веселому общем сего того нему ';
preg_match_all('/(?:[^-а-яА-ЯЁё]|^)([-а-яА-ЯЁё]{2,32})(?:[^-а-яА-ЯЁё]|$)/', $text, $ok);
var_dump($ok);


результат:
Код

array(2) {
  [0]=>
  array(3) {
    [0]=>
    string(10) " веселому "
    [1]=>
    string(6) " сего "
    [2]=>
    string(6) " нему "
  }
  [1]=>
  array(3) {
    [0]=>
    string(8) "веселому"
    [1]=>
    string(4) "сего"
    [2]=>
    string(4) "нему"
  }
}


PM MAIL WWW   Вверх
enoff
Дата 24.12.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



дошло наконец-то smile 
символы конца слова от предыдущего слова захватываются и следующее слово не попадает под шаблон. Поэтому на выходе через слово, сейчас напишу.

Код

preg_match_all('/(?<=[^-а-яё]|^)([-а-яё]{2,32})(?=[^-а-яё]|$)/iu', $text, $ok);


Это сообщение отредактировал(а) enoff - 24.12.2010, 16:21
PM MAIL ICQ Skype GTalk   Вверх
bars80080
Дата 24.12.2010, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да, теперь работает как надо.

сэнкс
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0878 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.