試圖分裂一些數字如下所示:拆分符合特殊字符
$line = "6 13 2";
@a = split(/\s+/, $line)
但沒有奏效。原來空白不是簡單的白色空間,vim編輯告訴我白色空間實際上有兩個字節\ 20 \ 02。
我試圖預處理下面的行,但它似乎沒有工作。
$line =~ s/\x02//g;
任何想法如何分裂它?
在此先感謝!
試圖分裂一些數字如下所示:拆分符合特殊字符
$line = "6 13 2";
@a = split(/\s+/, $line)
但沒有奏效。原來空白不是簡單的白色空間,vim編輯告訴我白色空間實際上有兩個字節\ 20 \ 02。
我試圖預處理下面的行,但它似乎沒有工作。
$line =~ s/\x02//g;
任何想法如何分裂它?
在此先感謝!
使用Data::Dump
檢查你的數據:
use Data::Dump;
$line = "6 13 2";
dd $line;
輸出:
pack("H*","36e280823133e28082e2808232")
或許更有幫助:
use Data::Dump;
$line = "6 13 2";
dd split //, $line;
輸出:
(
6,
"\xE2",
"\x80",
"\x82",
1,
3,
"\xE2",
"\x80",
"\x82",
"\xE2",
"\x80",
"\x82",
2,
)
看起來你有一些編碼問題需要處理。
更改爲utf8
:
use strict;
use warnings;
use utf8;
use Data::Dump;
my $line = "6 13 2";
dd split /\s+/, $line;
輸出:
(6, 13, 2)
的'$線=〜S/\ X02 // g'爲我工作。有沒有更多時髦的角色你沒有考慮? – 2014-10-03 15:28:16
這是一個Unicode U + 2002(EN SPACE),從UTF-8判斷我可以從瀏覽器中複製並分析。你需要使用一個命名的字符類來分割,我想(並且正在使用Unicode'enabled')。 – 2014-10-03 15:39:43