需要はないと思うけど文章を指定する文字で区切って配列化してみた。
単純に無能君っぽいものを作ってみたいと……
$target = "こんにちわ今日もいい天気ですね。何かいいことが起こりそうな予感がします。メロスもそう思っているでしょう?そうでなければ理由を説明するべきです。";
while(1)
{
pregmatch("/[一-龠]+|[ァ-ヴー]+|が|の|に|を/u", $target, $match);
$match = $match['0'];
if( strlen($target) <= 0 or $match == "" )
{
arraypush($tokenjoshi, $target);
break;
}
// 一致文字列長
$positionbefore = strlen($match);
// 一致文字列までの長さ
$positionafter = substr($target, 0, strpos($target, $match) );
// 一致文字列までを配列へ
arraypush($tokenjoshi, $positionafter);
// 一致文字列を配列へ
arraypush($tokenjoshi, $match);
// 一致文字列までの内容を削除
$target = substr($target, $positionbefore+strlen($positionafter), strlen($target));
}
array(27) {
[0]=>
string(6) "こん"
[1]=>
string(3) "に"
[2]=>
string(6) "ちわ"
[3]=>
string(6) "今日"
[4]=>
string(9) "もいい"
[5]=>
string(6) "天気"
[6]=>
string(12) "ですね。"
[7]=>
string(3) "何"
[8]=>
string(15) "かいいこと"
[9]=>
string(3) "が"
[10]=>
string(0) ""
[11]=>
string(3) "起"
[12]=>
string(15) "こりそうな"
[13]=>
string(6) "予感"
[14]=>
string(0) ""
[15]=>
string(3) "が"
[16]=>
string(12) "します。"
[17]=>
string(9) "メロス"
[18]=>
string(9) "もそう"
[19]=>
string(3) "思"
[20]=>
string(48) "っているでしょう?そうでなければ"
[21]=>
string(6) "理由"
[22]=>
string(0) ""
[23]=>
string(3) "を"
[24]=>
string(0) ""
[25]=>
string(6) "説明"
[26]=>
string(21) "するべきです。"
}
関連記事