首页 > 解决方案 > 获取括号之间的值

问题描述

我需要获取位于开括号和闭括号之间的所有字符串。示例字符串如下

[CDATA[[(MyTag),xi(Tag2)]OT(OurTag3)。

输出需要是一个带有MyTag,的数组Tag2OurTag3即字符串需要去掉括号。

下面的代码有效,但保留了括号。如何调整正则表达式模式以从输出中删除括号?

string pattern = @"\(([^)]*)\)";
string MyString = "[CDATA[[(MyTag),xi(Tag2) ]OT(OurTag3)";
Regex re = new Regex(pattern);
foreach (Match match in re.Matches(MyString))
{
    Console.WriteLine(match.Groups[1]); // print the captured group 1
}

标签: c#regex

解决方案


您应该能够使用以下内容:

(?<=\().+?(?=\))

(?<=() - 积极向后看 (

.*? - 内容的非贪婪匹配

(?=)) - 积极的前瞻 )


推荐阅读