如何从包含多个{
的字符串中获取第一个}
和最后一个{}
之间的值。
eg string: ".....[object:{ ..{...{..}...}..}]"
我使用C#的方法:
line="abcd..efg..[object:{ ab{..c{d.}.e.}f....g}]"
string p = ".*\\[Object:{([A-Za-z{}]*)}\\]";
Regex r = new Regex(p);
Match m=r.match(line);
string value=m.Groups[1].Value.ToString();
结果应该是:
value= ab{..c{d.}.e.}f....g
答案 0 :(得分:1)
{.*}
或
(?<={).*(?=})
这应该适合你。参见demo
string strRegex = @"{.*}";
Regex myRegex = new Regex(strRegex, RegexOptions.Multiline);
string strTargetString = @".....[object:{ ..{...{..}...}..}]";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
if (myMatch.Success)
{
// Add your code here
}
}