gpt4 book ai didi

php - 在 mysql/php 中选择 Chinese only, Japanese only 和 Korean only 记录

转载 作者:可可西里 更新时间:2023-11-01 07:06:35 27 4
gpt4 key购买 nike

有没有办法在mysql中选择只有中文、只有日文、只有韩文的词?

用英语可以通过以下方式完成:

SELECT * FROM table WHERE field REGEXP '[a-zA-Z0-9]'

甚至是像这样的“脏”解决方案:

SELECT * FROM table WHERE field > "0" AND field <"ZZZZZZZZ"

是否有针对东方语言/中日韩字符的类似解决方案?

我知道中文和日文共用字符,因此使用这些字符的日文单词有可能被误认为是中文单词。我猜这些词不会被过滤。

单词存储在 utf-8 字符串字段中。

mysql做不到,PHP能做吗?

谢谢! :)

编辑 1: 数据不包括字符串使用的语言,因此我无法按其他字段进行过滤。编辑 2: 使用像 bing 的翻译器 api(谷歌正在关闭他们的翻译器 api)是一个有趣的想法,但我希望有一个更快的正则表达式式解决方案。

最佳答案

MySQL 正则表达式不直接支持搜索 UTF-8 字符范围。请参阅 regexp 的 mySQL 引用它指出:

Warning The REGEXP and RLIKE operators work in byte-wise fashion, so they are not multi-byte safe and may produce unexpected results with multi-byte character sets.

幸运的是,您可以在 PHP 中构建这样的正则表达式,例如与

/[\x{1234}-\x{5678}]*/u

(注意正则表达式末尾的 u)。因此,您需要为您的不同语言找到合适的范围。使用 unicode code charts将使您能够为语言选择合适的脚本(尽管不是直接选择语言本身)。

关于php - 在 mysql/php 中选择 Chinese only, Japanese only 和 Korean only 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595533/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com