StringSplit("字符串", "分隔符"[, 标志 = 0])
参 数
字符串 | 目标字符串. |
分隔符 | 一或多个作为分隔符的字符 (区分大小写). |
标志 | [可选] 指定如何拆分字符串, 如果需要可以加入复合标志值: $STR_CHRSPLIT (0) = 分隔符字符串中的每个字符都将作为分隔标志 (默认值) $STR_ENTIRESPLIT (1) = 以整个分隔符字符串作为分隔标志 $STR_NOCOUNT (2) = 禁用返回计数的第一个元素 - 方便使用基于 0 开始的数组. 此时数组大小由UBound()函数检测.常量定义文件: StringConstants.au3 |
返 回 值
返回一个数组, 第一个元素 ($aArray[0]) 保存拆分后的子串数量,
其余元素 ($aArray[1],$aArray[2] 等等) 则保存拆分后的每个子字符串.
如果标志 = 2, 则返回第一元素不表示子串数量.
若未发现分隔符, 则 @error 设置为 1:
如果 "标志" 参数不是 $STR_NOCOUNT, 则 $aArray[0] 设置为 1, 并且完整字符串返回到 $aArray[1].
如果 "标志" 参数为 $STR_NOCOUNT, 则完整字符串返回到 $aArray[0].
备 注
若给定的分隔符是个空字符串 "", 则每个字符将作为数组元素返回.
如果分隔符字符串包含多个字符, 则函数操作取决于标志设置.
如果标志设置为 $STR_CHRSPLIT, 则使用分隔符中的单个字符拆分每个实例.
如果标志设置为 $STR_ENTIRESPLIT, 则使用整个分隔符拆分. 参阅下面的第二个示例
需要注意的是宏 @CRLF 实际上是一个 2 字符的字符串, 可能出现使用 @CR 和 @LF 拆分, 这将生成额外的空白的行, 这时应将标志参数设置为 $STR_ENTIRESPLIT.
本函数有时候可以代替 StringInStr() 函数, 因为本函数可以创建数组.
#include <MsgBoxConstants.au3> #include <StringConstants.au3> Example() Func Example() Local $sText = "This\nline\ncontains\nC-style breaks." ; 定义一个变量为文本字符串. ; 传递变量到 StringSplit(), 使用分隔符 '\n' 拆分变量 ; 请注意, 标记参数被设置为 $STR_ENTIRESPLIT (1), 因为它可能使用 \ 或 n 拆分字符串. MsgBox($MB_SYSTEMMODAL, "", StringSplit($sText, '\n', $STR_ENTIRESPLIT)[2]) ; 使用数组索引直接访问数组. #cs 返回内部临时字符串数组,可能包含下列值之一: $aArray[1] = "This" $aArray[2] = "line" ... $aArray[4] = "C-style breaks." #ce EndFunc ;==>Example
版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
评论