问问题
364 次
4 回答
1
假设您的输入是 UTF-8,您可以尝试使用
'/(\pL+)/u'
匹配字符串中的\pL+
一个或多个字母。
例子:
$str = '彼はそこに ひと人 でいた。';
preg_match_all('/(\pL+)/u', $str, $matches);
var_dump($matches[0]);
输出:
array(3) {
[0]=>
string(15) "彼はそこに"
[1]=>
string(9) "ひと人"
[2]=>
string(9) "でいた"
}
于 2011-08-21T17:16:17.617 回答
1
我认为:/([^ 、]+)/
应该与您给出的示例中的单词匹配(您可能希望添加一些除空格之外的其他单词终止字符,如果您的文本中有它们(或使用\pL
而不是[^ 、]
覆盖所有 UTF 字母。
例子
<?
preg_match_all('/[^ 、]+/u', "彼らは日本の 国民 となった。", $m);
print_r($m);
输出
Array
(
[0] => Array
(
[0] => 彼らは日本の
[1] => 国民
[2] => となった。
)
)
于 2011-08-21T12:51:57.667 回答
0
你只是想根据某种模式(空格或标点符号)分割你的字符串,这是真的吗?那这个呢?
In [51]: word = '.test test\n.test'
In [53]: re.split('[\s,.]+',word)
Out[53]: ['', 'test', 'test', 'test']
于 2011-08-21T13:07:58.613 回答
0
于 2011-08-22T09:44:28.117 回答