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