Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式在前缀出现时从字符串中提取数字集,但不匹配所述前缀_Regex_Go - Fatal编程技术网

Regex 正则表达式在前缀出现时从字符串中提取数字集,但不匹配所述前缀

Regex 正则表达式在前缀出现时从字符串中提取数字集,但不匹配所述前缀,regex,go,Regex,Go,如标题所述,假设我有一个字符串,如下所示: "somestring~200~122" 我想用正则表达式来匹配前缀“~”出现时的数字。所以我最终可以得到[200122] 匹配前缀是必要的,因为我需要防止出现如下字符串不匹配的情况 "somestring~abc200~def122" 对于其他上下文:如标题中所述,我正在使用go,因此我计划使用以下操作来获取字符串中的数字: pattern := regexp.MustCompile("regex i need help with") numbe

如标题所述,假设我有一个字符串,如下所示:

"somestring~200~122"
我想用正则表达式来匹配前缀“~”出现时的数字。所以我最终可以得到[200122]

匹配前缀是必要的,因为我需要防止出现如下字符串不匹配的情况

"somestring~abc200~def122"
对于其他上下文:如标题中所述,我正在使用go,因此我计划使用以下操作来获取字符串中的数字:

pattern := regexp.MustCompile("regex i need help with")
numbers := pattern.FindAllString(host, -1)
您可以使用提取仅包含数字的组。下面是一个示例,它查找后面跟数字的
~
的所有实例。它还将所有匹配项转换为整数 并将其插入到切片中:

package main

import (
    "fmt"
    "regexp"
    "strconv"
)

func main() {
    host := "somestring~200~122"
    pattern := regexp.MustCompile(`~(\d+)`)
    numberStrings := pattern.FindAllStringSubmatch(host, -1)
    numbers := make([]int, len(numberStrings))
    for i, numberString := range numberStrings {
        number, err := strconv.Atoi(numberString[1])
        if err != nil {
            panic(err)
        }
        numbers[i] = number
    }
    fmt.Println(numbers)
}
(?