Как preg_match_all набор слов на любом возможном языке? - PullRequest
1 голос
/ 05 сентября 2011

У меня есть веб-сайт, на который люди вводят списки слов.

Эти списки слов могут быть написаны на любом языке в мире.

Как мне извлечь эти списки слов изих входные данные, если я не знаю, на каком языке они вводят?

Есть ли какой-то символ международного алфавита для всех совпадений, который мне не хватает, или мне нужно вручную написать набор скобок, которые будут соответствоватькаждое возможное международное письмо?

Является ли этим , что я ищу и просто еще не знаю?

Ответы [ 2 ]

3 голосов
/ 05 сентября 2011

Вы можете использовать Свойства символов Unicode , например:

preg_match_all('#[\p{L}\p{Pc}]+#u', $str, $matches);

[\p{L}\p{Pc}]+ дает вам буквы и знаки препинания соединителя.Вы можете сократить это до \pL+.
В любом случае, вы захотите определить «слово» лучше.Это, вероятно, больше, чем последовательность некоторых букв ...

2 голосов
/ 05 сентября 2011

Моя рекомендация - определить ваше собственное соглашение о вводе - заставить их вводить одно слово за раз или одно слово на строку в текстовом поле.Иначе, вам понадобится алгоритм сегментации для каждого скрипта (да, это будет что-то тривиальное, например, «разбить на символы, которые имеют свойство разделителя слов в Юникоде» для подавляющего большинства скриптов, но остальные особые случаи в основном все еще остаются открытыми исследованиями ИИтемы).

...