當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。