golang中正则匹配IN IP4 (\d+.\d+.\d+.\d+)是否正确
时间: 2023-07-25 17:35:05 浏览: 195
正则表达式 `IN IP4 (\d+.\d+.\d+.\d+)` 可以匹配以 `IN IP4` 开头,后面跟着一个 IPv4 地址的字符串。但是要注意,`.` 在正则表达式中是一个特殊字符,表示匹配任意字符,因此需要使用转义字符 `\.` 来匹配真实的 `.` 字符。
正确的正则表达式应该是 `IN IP4 (\d+\.\d+\.\d+\.\d+)`,示例代码如下:
```go
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`IN IP4 (\d+\.\d+\.\d+\.\d+)`)
s := "v=0\r\no=- 0 0 IN IP4 192.168.0.1\r\ns=-\r\nt=0 0\r\n"
match := re.FindStringSubmatch(s)
if match != nil {
fmt.Println(match[1]) // 输出 192.168.0.1
}
}
```
上面的示例代码使用 `regexp.MustCompile` 函数编译正则表达式,然后使用 `FindStringSubmatch` 方法匹配字符串并返回结果。如果匹配成功,可以通过 `match[1]` 来获取 IP 地址。
阅读全文