问答 / 0 / 6 / 创建于 1年前
php7.4
$str = “你好,hello,こんにちは、전화하세요”;我想通过正则表达式获取$str中的各国语言句子
$result = [ "你好", "hello", "こんにちは、", "전화하세요" ];
preg_match_all('/[\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}\p{Latin}]+/u', $str, $matches);
$pattern = '/[\x{4e00}-\x{9fa5}a-zA-Z0-9\s\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]+/u';
可以使用 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] 即可得到结果。
我要举报该,理由是:
$pattern = '/[\x{4e00}-\x{9fa5}a-zA-Z0-9\s\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]+/u';
可以使用 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] 即可得到结果。