gpt4 book ai didi

c# - 匹配最后一个括号

转载 作者:行者123 更新时间:2023-11-30 16:03:07 26 4
gpt4 key购买 nike

我有一个 string,它包含一些文本,后面跟着一些内容不同的括号(可能是空的)。我需要提取最后一个括号及其内容:

atext[d][][ef] // should return "[ef]"
other[aa][][a] // should return "[a]"
xxxxx[][xx][x][][xx] // should return "[xx]"
yyyyy[] // should return "[]"

我查看了 RegexOptions.RightToLeft 并阅读了 lazy vs greedy matching ,但我这辈子都做不对。

最佳答案

这个正则表达式可以工作

.*(\[.*\])

Regex Demo

更高效的非贪婪版本

.*(\[[^\]]*\])

C# 代码

string input = "atext[d][][ef]\nother[aa][][a]\nxxxxx[][xx][x][][xx]\nyyyyy[]";
string pattern = "(?m).*(\\[.*\\])";
Regex rgx = new Regex(pattern);

Match match = rgx.Match(input);

while (match.Success)
{
Console.WriteLine(match.Groups[1].Value);
match = match.NextMatch();
}

Ideone Demo

对于嵌套的 [] 或不平衡的 [] 可能会产生意想不到的结果

关于c# - 匹配最后一个括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36821492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com