regex - 使用 Golang 正则表达式查找一个整数后跟一个字符串

标签 regex go

我想找到一个整数后跟术语“价格:”,无论是在输出中,我只需要打印必须排除术语“价格:”的整数。 现在,我的代码是这样的,输出是 [Price: 100],但我只需要输出 100。

package main 

import (
    "regexp"
    "fmt"
)

const str = "Some strings. Price: 100$. Some strings123"

func main() {
    re := regexp.MustCompile("Price:[[:space:]][0-9]+")
    fmt.Println(re.FindAllString(str, -1))
} 

最佳答案

您可以在数字模式周围使用捕获组并调用 re.FindStringSubmatch :

package main 

import (
    "regexp"
    "fmt"
)

const str = "Some strings. Price: 100$. Some strings123"

func main() {
    re := regexp.MustCompile(`Price:\s*(\d+)`)
    match := re.FindStringSubmatch(str)
    if match != nil {
        fmt.Println(match[1])
    } else {
        fmt.Println("No match!")
    }
} 

请注意,`Price:\s*(\d+)` 是原始字符串文字,您不必额外转义形成正则表达式转义的反斜杠,因此 \s* 匹配零个或多个空格,(\d+) 匹配并将 1+ 位数字捕获到此模式字符串文字中的第 1 组中。

关于regex - 使用 Golang 正则表达式查找一个整数后跟一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51875133/

相关文章:

javascript - HTML5 表单模式的问题

json - 去解码reflect.Type得到map[string]interface{}

go - aws-lambda 上的 sql.DB 连接太多

linux - 在 Go 中获取管道状态

java - 获取带有前缀和后缀的文件名

Java Mongodb 正则表达式查询

javascript - 单个字符串上的多个正则表达式

go - 如何使用 Golang 移位十六进制值?

api - 如何找到我网站的所有 API?

regex - 如何匹配与Perl中的特定模式不匹配的字符串?