我找不到正确的 Regex 代码来匹配这个:
ttttg必须为真tg必须为真tgg必须为 falsetttgg必须为 falset必须为真ttt必须为真g必须为 falsegggg必须为 false
t 可以出现任意次数,但至少出现一次,并且它可以选择在结尾处只包含一个 g。 我尝试了 Match match = Regex.Match("ttgg", @"[t]+{g}|[t]+"); 但它返回 true,它必须返回 false 因为有 2 g 并且只能有一个。
请您参考如下方法:
问题是给定输入字符串 "ttgg",您的模式将很乐意匹配 substring "ttg"。尝试在您的模式周围放置开始 (^) 和结束 ($) anchor ,以禁止额外的前导或尾随字符。除此之外,您可以大大简化您的模式:
Match match = Regex.Match("ttgg", @"^t+g?$")
这将匹配:
- 字符串的开头(
^) - 一个或多个
t个字符 - 一个可选的
g字符 - 字符串结束
