我有一个网站,人们可以在里面输入单词列表。
这些单词列表可以用世界上任何一种语言书写。
如果我不知道他们输入的是什么语言,我如何从他们的输入数据中提取这些单词列表?
是否缺少某种匹配所有国际字母符号,或者我必须手动编写一组括号来匹配每个可能的国际字母?
是这个我正在寻找,只是不知道它吗?
可以使用Unicode字符属性,例如:
preg_match_all('#['p{L}'p{Pc}]+#u', $str, $matches);
['p{L}'p{Pc}]+
给出了字母和连接符号。你可以把它缩短为'pL+
。
无论哪种方式,你都想更好地定义"单词"。它可能不仅仅是一些字母的序列……
我的建议是定义您自己的输入约定—强制他们一次输入一个单词,或者在文本框中每行输入一个单词。否则,你将需要为每个脚本一个分割算法(当然,对于绝大多数脚本来说,它将是一些微不足道的东西,比如"对具有Unicode单词分隔符属性的字符进行分割",但其余的特殊情况基本上仍然是开放的AI研究主题)。