我需要一个正则表达式来解析句子或段落中的单词.应该使用的一些独立者是:空格和点.所以在:
My name is Bob.I'm 104 yrs old.
Run Code Online (Sandbox Code Playgroud)
Bob而I'm被分隔,即使有不点它们之间的任何空间,但.
还应包括任何其他常规单词.
怎么样str_word_count()?:
出于此函数的目的,"word"被定义为包含字母字符的依赖于语言环境的字符串,该字符串也可以包含但不以"'"和" - "字符开头.
例:
$str = "My name is Bob.I'm 104 yrs old.";
print_r(str_word_count($str, 1, '0123456789'));
Run Code Online (Sandbox Code Playgroud)
得到:
Array
(
[0] => My
[1] => name
[2] => is
[3] => Bob
[4] => I'm
[5] => 104
[6] => yrs
[7] => old
)
Run Code Online (Sandbox Code Playgroud)
第三个参数采用一个字符串,该字符串定义哪些附加字符应被视为"单词字符".
$words = preg_split('#[\\s.]#', $string, -1, PREG_SPLIT_NO_EMPTY);
Run Code Online (Sandbox Code Playgroud)
在\\s将匹配所有空白字符(例如,空格,制表符,新的线等).在.将匹配,以及一....如果你想添加更多的字符,只是后添加它们.(但使用一个[,一个]和#必须进行转义\\,并且-必须在列表中的最后一个字符).. .
它将返回您的上述句子:
array(9) {
[0]=>
string(2) "My"
[1]=>
string(4) "name"
[2]=>
string(2) "is"
[3]=>
string(3) "Bob"
[4]=>
string(3) "I'm"
[5]=>
string(3) "104"
[6]=>
string(3) "yrs"
[7]=>
string(3) "old"
}
Run Code Online (Sandbox Code Playgroud)