regex - 如何匹配不包含特定字符串的字符串
问题描述
我想在 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 中做到这一点
解决方案
如果要解析命令行标志,请考虑使用标志包
对于一般字符串相关的功能,考虑字符串包
https://golang.org/pkg/strings/
在你的情况下:
strings.Contains(str, "-setup") && !strings.Contains(str, "-numinput")