如何在 Go 中用正则表达式匹配 IP 地址?
作者:WarmHope
时间:2024-05-23
浏览:0
如何在Go中使用正则表达式匹配IP地址?正则表达式语法:^(([0-9]|1-9|1[0-9]{2}|20-4|25[0-5]).){3}([0-9]|1-9|1[0-9]{2}|20-4|25[0-5])$Go代码示例:使用regexp.MatchString()函数进行匹配。实战案例:使用regexp.MustCompile()函数从字符串中替换所有IP地址。
如何在 Go 中使用正则表达式匹配 IP 地址?正则表达式语法:^(([0-9]|1-9|1[0-9]{2}|20-4|25[0-5]).){3}([0-9]|1-9|1[0-9]{2}|20-4|25[0-5])$Go 代码示例:使用 regexp.MatchString() 函数进行匹配。实战案例:使用 regexp.MustCompile() 函数从字符串中替换所有 IP 地址。

如何在 Go 中用正则表达式匹配 IP 地址?
正则表达式是一种强大的工具,可用于在字符串中搜索和匹配模式。在 Go 中,我们可以使用 regexp 包轻松地使用正则表达式。
正则表达式语法
匹配 IP 地址的正则表达式语法如下:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$Go 代码示例
以下代码演示了如何使用 regexp 包匹配 IP 地址:
package main
import (
"fmt"
"regexp"
)
func main() {
ipAddress := "192.168.1.1"
matched, _ := regexp.MatchString(`^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$`, ipAddress)
if matched {
fmt.Println("IP address is valid")
} else {
fmt.Println("IP address is invalid")
}
}实战案例
regexp 包还提供了其他有用的功能,例如替换和分组。以下代码演示了如何使用 regexp 包从字符串中替换所有 IP 地址:
package main
import (
"fmt"
"regexp"
)
func main() {
text := "The IP address of the web server is 192.168.1.1. The database server has the IP address 10.0.0.1."
// 匹配所有 IP 地址
ips := regexp.MustCompile(`(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])){3}`)
// 替换所有 IP 地址
result := ips.ReplaceAllString(text, "<REDACTED>")
fmt.Println(result)
}输出:
The IP address of the web server is <REDACTED>. The database server has the IP address <REDACTED>.
作者最新文章
Photoshop图层阵列怎么做?复制多个图层并整齐排列
2026-09-22 16:42
3dmax动画技巧总结:动画制作步骤与渲染视频教程
2026-09-22 14:47
思源笔记
2026-09-16 17:42
在线PDF转TXT操作步骤与乱码排查指南
2026-09-04 13:02
PDF加水印后如何检查显示效果?在线工具操作步骤与避坑指南
2026-09-03 13:02
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































