2012-11-21 90 views
4

我需要在字符串中搜索一个子字符串并返回它,如果它在字符串中。 Erlang的最佳做法是什么?请注意,我不知道子字符串在更大的字符串中发生的位置,所以我需要为此进行搜索。在Erlang中从一个大字符串中提取一个子字符串

+0

所有你会在'string.erl'模块中找到erlang'stdlib' –

回答

8

您可以使用正则表达式:

> re:run("foobarbaz", "bar", [{capture, first, list}]). 
{match,["bar"]} 

更多信息请参见the documentation for re:run/3。特别是您可能会发现不同的capture选项适合您的需要。

或者,如果你不需要正则表达式的所有功能,string:str/2可能就足够了:

> string:str(" Hello Hello World World ", "Hello World"). 
8 
3

这个小功能可以帮助你。如果可以在大字符串中找到小字符串,则返回true,否则返回false。

string_contains(Big, Small)-> 
    string:str(Big, Small) > 0. 
相关问题