例如,客户端请求的字符串如下:
我学习中国的语言, 国的语言.我想得到一个字符数组,包括空格、逗号、点等等,所以基本上我需要按字符细分如下:
$characters = [
"我", "学", "习", "中", "国", "的", "语", "言", ",", " ", "国", "的","语","言"
]我想我需要使用一些多字节函数,因为汉字可以占用3个或更多字节。我能用什么regexp表达式来得到那个数组?
发布于 2015-02-14 17:39:15
使用preg_match_all
preg_match_all('~.~u', $str, $match);.匹配任何字符,但不匹配换行符。但是当使用. DOTALL修饰符时,相同的s将匹配任何字符甚至换行。由于输入包含Unicode字符,所以必须启用u修饰符。
或
通过preg_split
$str = "我学习中国的语言, 国的语言.";
$split = preg_split('~(?<=.)(?=.)~u', $str);
print_r($split);示例:
$str = "我学习中国的语言, 国的语言.";
preg_match_all('~.~u', $str, $match);
print_r($match);输出:
Array
(
[0] => Array
(
[0] => 我
[1] => 学
[2] => 习
[3] => 中
[4] => 国
[5] => 的
[6] => 语
[7] => 言
[8] => ,
[9] =>
[10] => 国
[11] => 的
[12] => 语
[13] => 言
[14] => .
)
)https://stackoverflow.com/questions/28518277
复制相似问题