当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang matches(Subject, Pattern, Options)用法及代码示例


matches(Subject, Pattern, Options) -> Found
OTP R14B
类型:
Subject = binary()
Pattern = binary() | [binary()] | cp()
Found = [part()]
Options = [Option]
Option = {scope, part()}
part() = {开始::integer() >= 0, 长度::integer()}

作为match/2, 但Subject被搜索直到耗尽并且所有不重叠部分匹配的列表Pattern返回(按顺序)。

第一个也是最长的匹配优先于较短的匹配,如下例所示:

1> binary:matches(<<"abcde">>,
                  [<<"bcde">>,<<"bc">>,<<"de">>],[]).
[{1,4}]

结果显示,选择了 <<"bcde">>,而不是较短的匹配 <<"bc">>(这会导致多一场匹配 <<"de">>)。这对应于 POSIX 正则表达式(以及 awk 等程序)的行为,但与 re(和 Perl)中的替代匹配不一致,其中搜索模式中的词法顺序选择匹配的字符串。

如果未找到模式中的任何字符串,则返回空列表。

对于说明Pattern, 看compile_pattern/1。有关可用选项的说明,请参阅match/3.

如果在选项中指定 {scope, {Start,Length}} ,使得 Start > size of SubjectStart + Length < 0 或 Start + Length is > size of Subject ,则会引发 badarg 异常。

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 matches(Subject, Pattern, Options) -> Found。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。