我想解析c函數聲明。我想從字符串中獲取令牌數組。 所以我用分裂:Perl拆分()不刪除分隔符
$function = "int func1( int * , const float, const char[])"
print split(/(\(|\)|\*|[|]|,|\)/, $function);
它返回的這個
["int" "func1", "(", "int", "*", ",", "const", "float", ",", "const", "char[]", ")"]
這是basicly正確的數組,但我需要不把空格去掉。所以我期望這樣的事情
["int " "func1", "( ", "int ", "* ", ", ", "const ", "float", ", ", "const ", "char[]", ")"]
我有什麼選擇嗎? (而不是寫我自己的詞法分析器)
你看CPAN?你幾乎可以肯定不需要自己寫,但是用'split'天真地寫自己的東西似乎是個不錯的主意。 – geoffspear 2013-02-25 13:37:05