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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。