从erlang中的字符串中提取整数

时间:2013-02-11 21:17:18

标签: erlang

我在erlang中有这个变量代码,其值为“T00059”

我想从代码

中提取此值 59

我尝试使用此代码提取此值“00059”

  NewCode=string:substr(Code, 2, length(Code)),

现在我想知道如何在第一个整数不为空之前消除第一个零

意味着我们如何提取“59”

例如,如果我有这个值“Z00887”我应该在最后这个值887

2 个答案:

答案 0 :(得分:9)

您可以简单地执行(从交互式erl会话输出):

1> Code = "Z00887",
1> {NewCode, _Rest} = string:to_integer(string:substr(Code, 2, length(Code))),
1> NewCode.
887

(我在test with loop in erlang中的回答详细讨论了相同的问题)

答案 1 :(得分:0)

此代码将跳过起始零。如果您要保存,请将$1更改为$0

extract_integer([]) -> [];
extract_integer([H|T]) when (H >= $1) and (H =< $9) -> [H] ++ T;
extract_integer([_H|T]) -> extract_integer(T).