RegExp для английских слов
Не рискну предположить сколько займёт регулярное выражение для русских слов, а вот с английскими кто-то заморочился — существует регулярное выражения для английских слов, занимает 1,3Мб. Оно, конечно, полностью затмевает известное регулярное выражение для проверки емейла.
Насколько я понял, так автор демонстрирует работу своей программы frak, которая переводит любые наборы строк в регулярные выражения.
Юнит-тест для этой регулярки есть? :)
Комментарий для vasa_c:
Словарь английского языка :)
Комментарий для Евгения Степанищева:
Нужны ещё словари для других языков :)
Комментарий для hshhhhh.name:
Для негативного тестирования? :) Но автор не утверждает, что всё что совпадёт — английское слово, насколько я понимаю.
Комментарий для Евгения Степанищева:
Ну я думал что регэкспы нужны для валидации данных, типа «прошёл регу -- значит имаил корректный» (ну, как правило :)). Зачем нужен регеэксп для английского языка который может пропустить и не английский язык? Это пустословие!
Комментарий для hshhhhh.name:
Например потому, что слова в этом языке пишутся латиницей, а латиница используется не только в английском :)
Капитан очевидность замечает, что синтетические языки не являются регулярными («людоедоед» и все такое).
Комментарий для Евгения Степанищева:
Ну, я понимаю :)
Но там вроде рега работает по принципу пунтосвитчера, мол «такого в русском языке быть не может поэтому сменим ка раскладку».
Другое дело что если она не может сказать что это английский с большой вероятностью -- это совершенно бесполезные 1.3 мегабайта символов )
Я знаю более короткое регулярное выражение для английского языка — .*, а так же выражение, не дающее ложных срабатываний, — a|aback|abandon... и так до конца словаря современного английского.
На самом деле нужен какой-то критерий, который бы объяснял, чем именно это регулярное выражение лучше миллионов других, фильтрующих английский словарь.
Комментарий для aragont.livejournal.com:
Весь текст на этой странице попадёт под это регулярное выражение, причём здесь английский?
Это именно то, что содержит в себе данное регулярное выражение, просто в более компактном виде. Например, вместо smack|black там «(?:sm|bl)ack», принцип такой.