6-strings¶
包含 contains¶
包含:判断主串 s 中是否包含子串 substr。例如 “abcde” 中就包含 “bcd”。
- Contains 是字符串匹配;
- ContainsAny 是非严格匹配,即不需要 substr 整个都匹配到,只要 substr 中有一个字符匹配成功就行;
- ContainsRune 是 Unicode 字符匹配,即 rune 匹配。
拼接 Join¶
拼接字符串:将字符串切片 elems 中的字符串,夹带着分隔符 sep 拼接起来。
下标 Index¶
位置:
Index 系列 返回主串 s 中 第一个 子串 substr 的下标,匹配不到返回 -1。
LastIndex 系列返回主串 s 中 最后一个 子串 substr 的下标,匹配不到返回 -1。
- Index、LastIndex:严格匹配子串,必须子串 substr 每个字符都匹配上才匹配成功;
- IdexAny、LastIndexAny:非严格匹配子串,只要子串 substr 有一个能匹配上的就匹配成功;
- IndexByte、LastIndexByte:匹配 ASCII 字符;
- IndexRune:匹配 Unicode 字符;
- IndexFunc、LastIndexFunc:匹配主串中满足 f© 条件的字符。也就是把子串换成某个字符群。
重复 Repeat¶
重复:将字符串 s 重复 count 次,相当于 Python 中的 s * count
。
替换 Replace¶
替换:将字符串 s 中的 old 子串替换成 new 子串,替换 n 次;n 为 -1 时表示全部替换。
ReplaceAll(s, old, new)
等同与Replace(s, old, new, -1)
。
分割 Split¶
分割:将字符串 s 按照分割符 sep 分割成多个子串。
- After:分割后会结果中会带着分割符;
- N:分割成 n 个子串;
- n > 0:最多n个子串;最后一个子字符串将是未拆分的剩余字符;
- n == 0:返回 nil;
- n < 0:
SplitN(s, sep, -5)
等同于Split(s, sep)
;
- Fields:以连续的空白字符为分隔符,将 s 切分成多个子串,结果中不包含空白字符本身;相当于
Split(s, " ")
,但是割出来的空白字符串不包含在返回结果中。- 空白字符有:\t, \n, \v, \f, \r, ' ', U+0085 (NEL), U+00A0 (NBSP)
- 如果 s 中只包含空白字符,则返回一个空列表
修剪 Trim¶
修剪:将字符集 cutset 从字符串 s 中删除。cutset 任何一个字符都可以匹配,即修剪完不会有 cutset 中任何一个字符。
-
TrimLeft,从左边开始删除所有匹配的字符,匹配规则为从左开始匹配字符,直到第一个不匹配的字符停止。例如 cutset 为 abc,则 abcaaE、abcabdE、abcEabc 的匹配结果为 abcaa、abcab、abc。
-
Trim = TrimLeft + TrimRight
-
TrimPrefix = TrimLeft,但是只删除一次匹配
-
TrimSuffix = TrimRight,但是只删除一次匹配
-
TrimSpace:
-
TrimFunc:要删除的字符按照 f 匹配