例如,我想拆分这句话:
I am a sentence.
变成一个由 5 部分组成的数组;I
, am
, a
, sentence
, and .
.
我目前正在使用preg_split
尝试后explode
,但我似乎找不到合适的东西。
这是我尝试过的:
$sentence = explode(" ", $sentence);
/*
returns array(4) {
[0]=>
string(1) "I"
[1]=>
string(2) "am"
[2]=>
string(1) "a"
[3]=>
string(8) "sentence."
}
*/
还有这个:
$sentence = preg_split("/[.?!\s]/", $sentence);
/*
returns array(5) {
[0]=>
string(1) "I"
[1]=>
string(2) "am"
[2]=>
string(1) "a"
[3]=>
string(8) "sentence"
[4]=>
string(0) ""
}
*/
如何才能做到这一点?
您可以按单词边界进行拆分:
$sentence = preg_split("/(?<=\w)\b\s*/", 'I am a sentence.');
正则表达式几乎会扫描直到找到单词字符,然后在找到单词字符之后,正则表达式必须捕获单词边界和一些可选空格。
Output http://viper-7.com/kWRwQ4:
array(5) {
[0]=>
string(1) "I"
[1]=>
string(2) "am"
[2]=>
string(1) "a"
[3]=>
string(8) "sentence"
[4]=>
string(1) "."
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)