zoukankan      html  css  js  c++  java
  • Go 正则表达式

    定义一个正则表达式

    调用regexp 下面的几个方法并传入一个正则的字符串形式的参数定义一个正则表达式
    例如 :regexp.MustCompile("d")

    Copy
    Compile
    CompilePOSIX
    MustCompile
    MustCompilePOSIX
    

    方法概述

    regexp包中有16种方法来匹配正则表达式并标识匹配的文本,他们的名称可以使用这个正则来匹配

    Copy
    Find(All)?(String)?(Submatch)?(Index)?
    

    如果存在 All 该函数将匹配整个表达式的连续非重叠匹配。方法返回的是一个包含非all 值得切片,这个方法使用一个额外的参数整数参数 n, 如果n> = 0,则该函数最多返回n个匹配项/子匹配项;否则,它返回所有匹配项/子匹配项。

    如果存在 String 参数会是一个string,否则参数是一个 []byte 返回值也会相应的调整.

    如果存在 Submatch 返回值是一个切片,用于标识表达式的连续子匹配项, 子匹配项是正则表达式中带括号的子表达式(也称为捕获组)的匹配项,按左括号的顺序从左到右编号。子匹配0是整个表达式的匹配项,子匹配1是第一个带括号的子表达式的匹配项,依此类推。

    如果存在Index, 则返回输入字符串匹配项和子匹配项字节索引对,result[2*n:2*n+1]标识第n个子匹配项的索引, n==0 是整个表达式匹配的结果的索引对,如果不存在Index,则通过匹配/子匹配的文本识别匹配。

    还有一些其他方法与此模式不匹配。

    Copy
    package main
    
    import (
        "fmt"
        "regexp"
    )
    
    func main() {
        // Compile the expression once, usually at init time.
        // Use raw strings to avoid having to quote the backslashes.
        var validID = regexp.MustCompile(`^[a-z]+[[0-9]+]$`)
    
        fmt.Println(validID.MatchString("adam[23]"))
        fmt.Println(validID.MatchString("eve[7]"))
        fmt.Println(validID.MatchString("Job[48]"))
        fmt.Println(validID.MatchString("snakey"))
    }
    
     
    每天逼着自己写点东西,终有一天会为自己的变化感动的。这是一个潜移默化的过程,每天坚持编编故事,自己不知不觉就会拥有故事人物的特质的。 Explicit is better than implicit.(清楚优于含糊)
  • 相关阅读:
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    error
    adb
    没有在Manifest.xml中注册Activity
    office 2003打开2007版文件插件(附官方下载地址): compatibility pack for the 2007 office system
    R包MetaboAnalystR安装指南(Linux环境非root)
    R合并数据框有重复匹配时只保留第一行
    质谱行业介绍
    蛋白质组学数据分析——(1)原理
    [R报错] Kruskalwallis test 所有组的层次都必需是有限的
  • 原文地址:https://www.cnblogs.com/kylin5201314/p/14945257.html
Copyright © 2011-2022 走看看