php正则匹配问题

1. 运行环境

php7.4

2. 问题描述?

$str = “你好,hello,こんにちは、전화하세요”;
我想通过正则表达式获取$str中的各国语言句子

3. 您期望得到的结果?

$result = [
 "你好",
 "hello",
 "こんにちは、",
 "전화하세요"
];
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6
preg_match_all('/[\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}\p{Latin}]+/u', $str, $matches);
1年前 评论
wxfjamdc 1年前
Imuyu 1年前
DonnyLiu 1年前

$pattern = '/[\x{4e00}-\x{9fa5}a-zA-Z0-9\s\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]+/u';

1年前 评论

可以使用 Unicode 字符集来匹配各个国家语言的字符。以下是一个示例代码:

$str = "你好,hello,こんにちは、전화하세요"; preg_match_all('/[\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]+|[a-zA-Z]+/u', $str, $matches); $result = $matches[0];

解释一下代码:

\p{Han} 匹配汉字字符集 \p{Katakana} 匹配日语片假名字符集 \p{Hiragana} 匹配日语平假名字符集 \p{Hangul} 匹配韩语字符集 [a-zA-Z] 匹配英文字母 使用 preg_match_all 函数,将匹配到的字符放入 $matches 数组中,最后取出 $matches[0] 即可得到结果。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!