split(Subject, Pattern, Options) -> Parts
OTP R14B
类型:
Subject = binary()
Pattern = binary() | [binary()] | cp()
Options = [Option]
Option = {scope, part()} | trim | global | trim_all
Parts = [binary()]
将 Subject
拆分为基于 Pattern
的二进制文件列表。如果未指定选项global
,则只有Subject
中第一次出现Pattern
才会产生拆分。
在 Subject
中找到的 Pattern
部分不包含在结果中。
例子:
1> binary:split(<<1,255,4,0,0,0,2,3>>, [<<0,0,0>>,<<2>>],[]).
[<<1,255,4>>, <<2,3>>]
2> binary:split(<<0,1,0,0,4,255,255,9>>, [<<0,0>>, <<255,255>>],[global]).
[<<0,1>>,<<4>>,<<9>>]
选项摘要:
- {scope, part()}
-
工作原理如下
match/3
和matches/3
。请注意,这仅定义了搜索匹配字符串的范围,它不会在分割之前剪切二进制文件。范围之前和之后的字节保留在结果中。请参阅下面的示例。 - trim
-
删除结果的尾随空白部分(就像
trim
在re:split/3
. - trim_all
-
删除结果的所有空白部分。
- global
-
重复分割直到
Subject
已经筋疲力尽了。概念上的选择global
对返回的位置进行拆分工作matches/3
,而它通常适用于返回的位置match/3
.
作用域与分割前将二进制文件分开的示例:
1> binary:split(<<"banana">>, [<<"a">>],[{scope,{2,3}}]).
[<<"ban">>,<<"na">>]
2> binary:split(binary:part(<<"banana">>,{2,3}), [<<"a">>],[]).
[<<"n">>,<<"n">>]
返回类型始终是全部引用 Subject
的二进制文件列表。这意味着 Subject
中的数据不会复制到新的二进制文件,并且在不再引用拆分结果之前,无法对 Subject
进行垃圾回收。
对于说明Pattern
, 看compile_pattern/1
.
相关用法
- erlang split(Subject, RE, Options)用法及代码示例
- erlang split(String, SearchPattern)用法及代码示例
- erlang split(Filename)用法及代码示例
- erlang split(List, Keys)用法及代码示例
- erlang split_binary用法及代码示例
- erlang split_binary(Bin, Pos)用法及代码示例
- erlang splitwith(Pred, List)用法及代码示例
- erlang spawn用法及代码示例
- erlang spawn on Node用法及代码示例
- erlang spawnlink用法及代码示例
- erlang spawn(Module, Function, Args)用法及代码示例
- erlang span(String, Chars)用法及代码示例
- erlang specification(Fun, Set1)用法及代码示例
- erlang sin用法及代码示例
- erlang str用法及代码示例
- erlang substr用法及代码示例
- erlang sort用法及代码示例
- erlang sublist用法及代码示例
- erlang sum用法及代码示例
- erlang self用法及代码示例
- erlang safe_fixtable(Table, Fix)用法及代码示例
- erlang select(Table, MatchSpec)用法及代码示例
- erlang select_replace(Table, MatchSpec)用法及代码示例
- erlang select_reverse(Continuation)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 split(Subject, Pattern, Options) -> Parts。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。