首页 > 解决方案 > 如何匹配不包含特定字符串的字符串

问题描述

我想在 Go 中编写正则表达式以匹配一个字符串,前提是它不包含特定的子字符串(-numinput)并且包含另一个特定的字符串(-setup)。

例如,对于 inputStr

以下类型的字符串不应匹配,因为存在 -numinput

str = "axxx yy  -setup  abc -numinput 12345678 aaa"

以下类型的字符串应匹配,因为 -setup 存在且 -numinput 不存在

str = "axxx yy  -setup  abc aaa"

以下类型的字符串不应匹配,因为 -setup 不存在,即使 -numinput 不存在

str = "axxx yy abc aaa"

我遇到了一些帖子,例如正则表达式来匹配不包含单词的行?

但是,我只是不明白如何在 Golang 中做到这一点

标签: regexgoregex-lookarounds

解决方案


如果要解析命令行标志,请考虑使用标志包

https://golang.org/pkg/flag/

对于一般字符串相关的功能,考虑字符串包

https://golang.org/pkg/strings/

在你的情况下:

strings.Contains(str, "-setup") && !strings.Contains(str, "-numinput")

推荐阅读