我觉得这可能会被问到,但标题不同,因此我找不到完全相同的内容。
什么是最简单的方法来对字符串进行标记,以便每个单词都被标记化,以及每个单词中的每个字符序列?我认为它可以通过正则表达式拆分来完成,但也许不是......
效果将是....
Hey you guys
以
[H, e, y, He, Hey, y, o, u, yo, you, g, u, y, s, gu, guy, guys]
顺序并不重要,因为结果会产生与上述相同的效果。
regexp可以执行此操作,还是按顺序进行某种自定义标记?
答案 0 :(得分:3)
自定义标记将是您最好的选择。
$inStr = 'Hey you guys';
$tokens = array();
$tokenList = explode(' ',$inStr);
foreach($tokenList as $bigToken) {
$tokens[] = $bigToken; //take care of individual words
$tokens = array_merge($tokens, str_split($bigToken)); //take care of single letters
for($i = 2; $i < strlen($bigToken); $i++) {
$tokens[] = substr($bigToken, 0, $i); //only need the first element here.
}
}
print_r($tokens);
这是工作代码。 http://3v4l.org/gZn8p