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


erlang replace(Subject, Pattern, Replacement, Options)用法及代碼示例


replace(Subject, Pattern, Replacement, Options) -> Result
OTP R14B
類型:
Subject = binary()
Pattern = binary() | [binary()] | cp()
Replacement = binary()
Options = [Option]
Option = global | {scope, part()} | {insert_replaced, InsPos}
InsPos = OnePos | [OnePos]
OnePos = integer() >= 0
integer() =< byte_size(替換)
Result = binary()

通過將 Subject 中與 Pattern 匹配的部分替換為 Replacement 的內容來構造新的二進製文件。

如果將 Subject 的匹配子部分插入到結果中,則選項 {insert_replaced, InsPos} 會在將 Replacement 插入 Subject 之前將匹配部分插入到 Replacement 的指定位置(或多個位置) 。

例子:

1> binary:replace(<<"abcde">>,<<"b">>,<<"[]">>, [{insert_replaced,1}]).
<<"a[b]cde">>
2> binary:replace(<<"abcde">>,[<<"b">>,<<"d">>],<<"[]">>,[global,{insert_replaced,1}]).
<<"a[b]c[d]e">>
3> binary:replace(<<"abcde">>,[<<"b">>,<<"d">>],<<"[]">>,[global,{insert_replaced,[1,1]}]).
<<"a[bb]c[dd]e">>
4> binary:replace(<<"abcde">>,[<<"b">>,<<"d">>],<<"[-]">>,[global,{insert_replaced,[1,2]}]).
<<"a[b-b]c[d-d]e">>

如果 InsPos 中指定的任何位置 > 替換二進製文件的大小,則會引發 badarg 異常。

選項global{scope, part()}工作為split/3。返回類型始終是binary().

對於說明Pattern, 看compile_pattern/1.

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 replace(Subject, Pattern, Replacement, Options) -> Result。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。