我如何在erlang v5.10.4中使用regexp:sh_to_awk和regexp:match

时间:2014-01-21 04:45:43

标签: erlang

我有一个使用regexp:sh_to_awkregexp:match的模块。

但是当我编译它时,编译器警告我已从R15中删除了regexp模块并建议我使用re模块。

我搜索了erlang文档,但是我找不到如何替换这两个函数。

有谁能告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

实际上,regexp模块已被弃用了一段时间,现在已被删除,取而代之的是re模块。

旧的 regexp:match 函数已被re:run函数取代,这些函数添加了许多功能,例如将捕获的部分作为列表或二进制文件返回(旧的返回方式)起始位置和长度也保持不变):

> re:run("Test String","[a-zA-Z]{4}",[{capture,all,list},global]).
{match,[["Test"],["Stri"]]}

阅读re:run/3文档,这是值得的,就像re模块的所有其他功能一样(例如compilereplace)。

正则表达式:sh_to_awk 已被删除。您可以使用filelib:wildcard函数来匹配文件名,如果这是您对旧regexp:sh_to_awk/1函数的预期用途。