正则表达式忽略捕获的中间部分

Val*_*zub 10 c# regex

我想要一个正则表达式,当应用于:"firstsecondthird"将匹配"第三个"(在单个组中,即在C#Match.Value中将等于"第三个").

那可能吗?我们可以忽略后缀或前缀,但是中间?

tri*_*eee 8

不,没有工具可以创建包含目标字符串中的非连续文本的单个匹配组。您将需要使用替换,或将匹配的组粘合在一起形成一个新字符串。


dun*_*can 5

匹配以“first”开头、具有零个或多个其他字符、然后以“third”结尾的字符串。你是这个意思吗?

"^first(.*)third$"
Run Code Online (Sandbox Code Playgroud)

或者,你的意思是如果你找到一个字符串 'firstsecondthird',除了 'first' 和 'third' 之外的所有内容都被丢弃?

replace("^(first)second(third)$", "$1$2")
Run Code Online (Sandbox Code Playgroud)