php - 如何在 PHP 中使用正则表达式将文本拆分为 Unicode 单词

标签 php regex unicode

我有一个网站模块,它从 Twitter 收集一些推文并将它们拆分为单词并放入数据库中。然而,由于推文通常包含土耳其语字符 [ıöüğşçйÖÜĞŞÇ],我的模块无法正确划分单词。

例如,短语 Aynı labda çalıştığım 被拆分为 Aynlabdaalıştığım,但它应该分为 Aynılabdaçalıştığım

这是我完成这项工作的代码:

preg_match_all('/(\A|\b)[A-Z\Ç\Ö\Ş\İ\Ğ\Ü]?[a-z\ç\ö\ş\ı\ğ\ü]+(\Z|\b)/u', $text,$a);

您认为这里有什么问题吗?

重要提示:我并不愚蠢,不会用空格字符分割文本,我需要这些字符完全匹配。我不需要任何数字或特殊字符,例如 [,.!@#$^&*123456780]。

我需要一个正则表达式来分割它 kısa isimleri ile“Vic”和“Wick”vardı。

进入此:

kısa
isimleri
ile
Vic
ve
Wick
vardı

更多示例:

我们是@test

We
re
test

Föö bär,我们@test to0 ÅäÖ - 123 好吗? kthxbai?被分成这样,

b
r
we
re
test
ok
kthxbai

但我希望它是:

Föö
bär
we
re
test
ÅÄÖ
ok
kthxbai

最佳答案

我会看一下 mb_split() .

$str = 'We\'re @test Aynı labda çalıştığım';
var_dump(\mb_split('\s', $str));

给我:

array
  0 => string 'We're' (length=5)
  1 => string '@test' (length=5)
  2 => string 'Aynı' (length=5)
  3 => string 'labda' (length=5)
  4 => string 'çalıştığım' (length=16)

关于php - 如何在 PHP 中使用正则表达式将文本拆分为 Unicode 单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9048538/

相关文章:

php - 数组中的下一个键

php - 如何从 mysql 表中随机选择或随机播放?

python - 2.2GB JSON 文件解析不一致

php - 文件不会使用取消链接删除

php - 搜索数据库中的冒犯性词语

java - 使用正则表达式查找文本中至少包含一位数字和一个字母以及一些其他条件的序列

php - Preg_replace 括号之间的空格

java - 从 Java 中的字符串中提取浮点值

Swift 在 localization.strings 中使用 unicode 字符

Android 使用区域设置获取国家表情符号标志