Подскажите по регуляркам

cscope
На сайте с 13.02.2005
Offline
525
341

Есть парсер где можно задать регулярки для фильтрации определенных текстов.

Например чтобы парсить русскоязычные текста задаю [а-я]+ но если в тексте присутствует хотя бы 1 русское слово, то текст парсится несмотря на то, что весь остальной текст английский, а существует ли какая то регулярка чтобы задать что то вроде "парсить если большая часть текста на русском" ?

edogs software
На сайте с 15.12.2005
Offline
775
#1

Нету.

Что бы не находило совсем уж хлам, то можно нечто вроде ([a-я]{3,}.*){4,} - 4 русских слова длиной не меньше 3 символов.

А иначе надо перепроверять найденное отдельно.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
IL
На сайте с 20.04.2007
Offline
435
#2
cscope:
парсить если большая часть текста на русском

Определиться с терминологией.. Что есть "большая часть на русском"? Количество слов? Букв?.. Ещё цифры могут попадаться..

Но в целом:

Если варианта только два (русский/английский) без всяких "умляутов" - можно определить длину текста в разных кодировках..

Можно без регулярки посчитать количество кириллических символов..

Можно через preg_match_all (без указания третьего параметра) получить количество букв([а-я]) (или слов ([а-я]+)) русскоязычных.. и на него ориентироваться.

При наличии тэгов - предварительно прогнать через strip_tags..

Но это всё не совсем про "задать регулярку"..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
J
На сайте с 20.02.2014
Offline
120
jkm
#3

Если текста там в пределах нескольких килобайт, то регуляркой можно проверить, что не менее половины символов это русские буквы.

^(?i:([а-яё](?-1)*[^а-яё]?)|([^а-яё](?-1)*[а-яё]))*+$

https://regex101.com/r/TIH0dV/1

[Удален]
#4

cscope, по любому парсер работает уже с полученными данными, зачем ему ставить условия, спарсить всё, а потом разобрать что нужно, а что нет

cscope
На сайте с 13.02.2005
Offline
525
#5
burunduk:
cscope, по любому парсер работает уже с полученными данными, зачем ему ставить условия, спарсить всё, а потом разобрать что нужно, а что нет

Можно наверное и в нотепаде потом отсеять, но там опять же нужно регулярку знать + задать параметры начала и окончания статьи, а они немного разные.

Спасибо попробую то что выше предложили.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий