Go 正则
正则作用
- 匹配 是否存在:match
- 匹配 提取:find
- 匹配 替换:replace
- 匹配 其他操作
匹配 是否存在
match matchstring matchrender re.match re.matchstring
匹配提取 find
Regexp 类型提供了多达 16(2^4)个方法,用于匹配正则表达式并获取匹配的结果。它们的名字满足如下正则表达式:
Find(All)?(String)?(Submatch)?(Index)?
-
如果’All’出现了,该方法会返回输入中所有互不重叠的匹配结果。如果一个匹配结果的前后(没有间隔字符)存在长度为 0 的成功匹配,该空匹配会被忽略。包含 All 的方法会要求一个额外的整数参数 n,如果 n>=0,方法会返回最多前 n 个匹配结果。常用 -1
-
如果’String’出现了,匹配对象为字符串,否则应该是[]byte 类型,返回值和匹配对象的类型是对应的。
-
如果’Submatch’出现了,返回值是表示正则表达式中成功的组匹配(子匹配/次级匹配)的切片。组匹配是正则表达式内部的括号包围的次级表达式(也被称为“捕获分组”),从左到右按左括号的顺序编号。,索引 0 的组匹配为完整表达式的匹配结果,1 为第一个分组的匹配结果,依次类推。
-
如果’Index’出现了,匹配/分组匹配会用输入流的字节索引对表示 result[2n:2n+1]表示第 n 个分组匹配的的匹配结果。如果没有’Index’,匹配结果表示为匹配到的文本。如果索引为负数,表示分组匹配没有匹配到输入流中的文本。
- 原文作者:战神西红柿
- 原文链接:https://tomatoares.github.io/posts/go/go-%E6%AD%A3%E5%88%99/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。