Есть парсер где можно задать регулярки для фильтрации определенных текстов.
Например чтобы парсить русскоязычные текста задаю [а-я]+ но если в тексте присутствует хотя бы 1 русское слово, то текст парсится несмотря на то, что весь остальной текст английский, а существует ли какая то регулярка чтобы задать что то вроде «парсить если большая часть текста на русском» ?
edogs software
Нету.
Что бы не находило совсем уж хлам, то можно нечто вроде ([a-я]{3,}.*){4,} — 4 русских слова длиной не меньше 3 символов.
А иначе надо перепроверять найденное отдельно.
ivan-lev
cscope: парсить если большая часть текста на русском
Определиться с терминологией.. Что есть «большая часть на русском»? Количество слов? Букв?.. Ещё цифры могут попадаться..
Но в целом:
Если варианта только два (русский/английский) без всяких «умляутов» — можно определить длину текста в разных кодировках..
Можно без регулярки посчитать количество кириллических символов..
Можно через preg_match_all (без указания третьего параметра) получить количество букв([а-я]) (или слов ([а-я]+)) русскоязычных.. и на него ориентироваться.
При наличии тэгов — предварительно прогнать через strip_tags..
Но это всё не совсем про «задать регулярку»..
jkm
Если текста там в пределах нескольких килобайт, то регуляркой можно проверить, что не менее половины символов это русские буквы.
cscope
Есть парсер где можно задать регулярки для фильтрации определенных текстов.
Например чтобы парсить русскоязычные текста задаю [а-я]+ но если в тексте присутствует хотя бы 1 русское слово, то текст парсится несмотря на то, что весь остальной текст английский, а существует ли какая то регулярка чтобы задать что то вроде «парсить если большая часть текста на русском» ?
edogs software
Нету.
Что бы не находило совсем уж хлам, то можно нечто вроде ([a-я]{3,}.*){4,} — 4 русских слова длиной не меньше 3 символов.
А иначе надо перепроверять найденное отдельно.
ivan-lev
парсить если большая часть текста на русском
Определиться с терминологией.. Что есть «большая часть на русском»? Количество слов? Букв?.. Ещё цифры могут попадаться..
Но в целом:
Если варианта только два (русский/английский) без всяких «умляутов» — можно определить длину текста в разных кодировках..
Можно без регулярки посчитать количество кириллических символов..
Можно через preg_match_all (без указания третьего параметра) получить количество букв([а-я]) (или слов ([а-я]+)) русскоязычных.. и на него ориентироваться.
При наличии тэгов — предварительно прогнать через strip_tags..
Но это всё не совсем про «задать регулярку»..
jkm
Если текста там в пределах нескольких килобайт, то регуляркой можно проверить, что не менее половины символов это русские буквы.
https://regex101.com/r/TIH0dV/1
[Удален]
cscope, по любому парсер работает уже с полученными данными, зачем ему ставить условия, спарсить всё, а потом разобрать что нужно, а что нет
cscope
cscope, по любому парсер работает уже с полученными данными, зачем ему ставить условия, спарсить всё, а потом разобрать что нужно, а что нет
Можно наверное и в нотепаде потом отсеять, но там опять же нужно регулярку знать + задать параметры начала и окончания статьи, а они немного разные.
Спасибо попробую то что выше предложили.