我找不到Regex与此匹配的正确代码:
tttttg必须是真的tg必须是真的tgg一定是假的tttgg一定是假的t必须是真的ttt必须是真的g一定是假的gggg一定是假的
可以有任意数量的出现,t但至少有一个,并且可以选择g在结尾只出现 a。我试过Match match = Regex.Match("ttgg", @"[t]+{g}|[t]+");了,但它返回 true,它必须返回 false,因为有 2 个g并且只能有一个。
问题是,给定输入字符串 ,"ttgg"您的模式将愉快地匹配子字符串 "ttg"。尝试在您的模式周围放置 start ( ^) 和 end ( $) 锚,以禁止额外的前导或尾随字符。除此之外,您可以显着简化您的模式:
Match match = Regex.Match("ttgg", @"^t+g?$")
这将匹配:
^)t字符g字符要使用的正则表达式是:"\bt\b|t+g\b|\bt+\b"
\bt\b匹配唯一的 t - 单词边界,'t',单词边界。
t+g\b匹配余数 - 一个或多个 't' 和一个和一个只有 g。
我假设您的目标不一定从行首开始。