2015-04-06 50 views
0

我試圖刪除字符串中的換行符。如何使用re返回UTF:替換

我嘗試這樣做:

remove_newline(Data) -> 
    re:replace(Data, "\n", ""). 

,但它似乎返回一個ISO-8859字符串。

我想這太:

remove_newline(Data) -> 
    {ok, MP} = re:compile("\n", [unicode]), 
    re:replace(Data, MP, ""). 

,但它也不起作用。

數據來自file:read_line an是UTF編碼的。

如何從re:獲取UTF字符串替換?

+0

您可以試試這個:'re:replace(Text,「\\ n +」,「」,[global])。 –

+0

我試過了,但沒有成功 – RoaldOrm

回答

0

原因可能是你得到的結果是一個列表。您可能需要使用re:replace(Data, "\n", "", [global, {return, binary}])。看看文檔。 http://erlang.org/doc/man/re.html#replace-4

+0

我使用了一個列表,在進一步處理中使用字符串:令牌。不過,我對此使用了'binary:bin_to_list',然後它就工作了。謝謝。 'remove_newline(Data) - > binary:bin_to_list(re:replace(Data,「\ n +」,「」,[global,{return,binary}]))。 ' – RoaldOrm

+0

所以你想要一個utf8字節的列表。這是非常罕見的,相當混亂。你可能會嘗試'binary:split'而不是'string:tokens'。這將有助於保持標準不變量:二進制文件中的utf8和列表中的unicode代碼點。 –