使用正则表达式获取价值

时间:2015-04-16 12:28:01

标签: regex

如何从包含多个{的字符串中获取第一个}和最后一个{}之间的值。

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

1 个答案:

答案 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
  }
}