4

我需要在字符串中搜索一个子字符串,如果它在字符串中,则返回它。在 Erlang 中最好的方法是什么?请注意,我不知道子字符串出现在较大字符串中的位置,因此我需要进行搜索。

4

2 回答 2

8

您可以使用正则表达式:

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

有关更多信息,请参阅re:run/3 的文档。特别是,您可能会发现不同的capture选项适合您的需要。

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

> string:str(" Hello Hello World World ", "Hello World").
8
于 2012-11-21T12:23:42.953 回答
3

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

string_contains(Big, Small)->
    string:str(Big, Small) > 0.
于 2012-11-22T07:14:20.007 回答