Regexp用于解析句子中的单词

Cli*_*ote 2 php regex string

我需要一个正则表达式来解析句子或段落中的单词.应该使用的一些独立者是:空格和点.所以在:

My name is Bob.I'm 104 yrs old.
Run Code Online (Sandbox Code Playgroud)

Bob而I'm被分隔,即使有不点它们之间的任何空间,但.

还应包括任何其他常规单词.

Fel*_*ing 9

怎么样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)

第三个参数采用一个字符串,该字符串定义哪些附加字符应被视为"单词字符".


irc*_*ell 6

$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)