从Golang中的字符串提取正则表达式
regexp

前置知识

在开始介绍如何从Golang中的字符串中提取正则表达式之前,有一些前置知识需要了解:

  1. 正则表达式的语法
.*+[]|


regexp
regexpMatchFindStringRegexpRegexpMatchString

步骤

  1. 创建正则表达式
regexp.Compile*regexp.Regexp"foo"
import "regexp"

r, err := regexp.Compile("^foo")
  1. 提取正则表达式
Regexp.FindString"foo bar"
s := "foo bar"

matchString := r.FindString(s)
matchString"foo"
  1. 提取正则表达式的子表达式
Regexp.FindStringSubmatch
expr := "(foo)=(\\d+)"
r, err := regexp.Compile(expr)

s := "foo=123"

matchStrings := r.FindStringSubmatch(s)
package main

import (
    "fmt"
    "regexp"
)

func main() {
    expr := "(foo)=(\\d+)"
    r, err := regexp.Compile(expr)

    if err != nil {
        fmt.Printf("error compiling regexp: %v\n", err)
        return
    }

    s := "foo=123"

    matchStrings := r.FindStringSubmatch(s)

    if len(matchStrings) < 3 {
        fmt.Println("no match found")
        return
    }

    fmt.Printf("Match: %s\n", matchStrings[0])
    fmt.Printf("First capturing group: %s\n", matchStrings[1])
    fmt.Printf("Second capturing group: %s\n", matchStrings[2])
}