我觉得这可能是被问到的,但标题不同,因此我找不到完全相同的副本。
标记字符串以便标记每个单词以及每个单词中的每个字符序列的最简单方法是什么?我认为它可以通过正则表达式拆分来完成,但也许不是......
效果应该是......
Hey you guys
到
[H, e, y, He, Hey, y, o, u, yo, you, g, u, y, s, gu, guy, guys]
顺序并不重要,只要结果与上面的效果相同。
正则表达式可以做到这一点,还是按顺序进行某种自定义标记?
自定义标记化将是您最好的选择。
$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