在 Go 语言中,可以使用 strings.Contains
函数来检查一个字符串是否包含另一个子串。下面是如何检查给定的字符串中是否存在指定的子串(例如 "10.182.1.4/24"
)的示例:
package main
import (
"fmt"
"strings"
)
func main() {
str := "ens10@10.182.1.2/24,10.182.1.3/24,10.182.1.4/24"
substr := "10.182.1.4/24"
if strings.Contains(str, substr) {
fmt.Printf("字符串中存在子串: '%s'\n", substr)
} else {
fmt.Printf("字符串中不存在子串: '%s'\n", substr)
}
}
输出
字符串中存在子串: '10.182.1.4/24'
说明
- strings.Contains:此函数接受两个参数,第一个是原始字符串,第二个是要查找的子串。如果原始字符串包含该子串,则返回
true
;否则返回false
。 - 注意,这种方法是大小写敏感的,因此需要确保比较时的一致性。
如果你只想查找以逗号分隔的完整地址,也可以考虑将整个字符串拆分成片段,然后逐一比较。比如:
package main
import (
"fmt"
"strings"
)
func main() {
str := "ens10@10.182.1.2/24,10.182.1.3/24,10.182.1.4/24"
substr := "10.182.1.4/24"
// 将原始字符串按逗号分割成切片
subnets := strings.Split(str, ",")
for _, subnet := range subnets {
if subnet == substr {
fmt.Printf("找到完整匹配的子网: '%s'\n", subnet)
return
}
}
fmt.Printf("未找到完整匹配的子网: '%s'\n", substr)
}
输出
找到完整匹配的子网: '10.182.1.4/24'
这种方法更加精确,因为它确保了只匹配到完整项,而不是部分匹配。
内容由零声教学AI助手提供,问题来源于学员提问