在Erlang中从大字符串中提取子字符串

时间:2012-11-21 12:17:24

标签: string erlang

我需要在字符串中搜索子字符串,如果它在字符串中则返回。 在Erlang中最好的方法是什么?请注意,我不知道子串发生在更大的字符串中的位置,所以我需要搜索它。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

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

string_contains(Big, Small)->
    string:str(Big, Small) > 0.