perl でファイルをストリーミングし、行をトークン化し、トークンを含めようとしています。
私は持っている:
while( $line =~ /([\/][\d]*[%].*?[%][\d]*[\/]|[^\s]+|[\s]+)/g ) {
my $word = $1;
#...
}
ただし、トークンにスペースがない場合は機能しません。
たとえば、私の行が次の場合:
$line = '/15%one (1)(2)%15/ is a /%good (1)%/ +/%number(2)%/.'
その行を次のように分割したいと思います。
$output =
[
'/15%one (1)(2)%15/',
' ',
'is',
' ',
'a',
'/%good (1)%/',
' ',
'+',
'/%number(2)%/',
'.'
]
これを行う最善の方法は何ですか?