如何使用正则表达式搜索嵌套级别的搜索字符串
例如,我有如下字符串:
例如,我有如下字符串:
var str = "samir patel {samirpatel@test1.com{sam@somedomain.com}}";
输出结果应该是sam@somedomain.com。
{([^{}]*)}
{some content}
)的字符串,例如{some content}
。您可以在此处测试:http://regexpal.com/。var str = "samir patel {samirpatel@test1.com{sam@somedomain.com}}";
var regex = new Regex("{([^{}]*)}");
var matches = regex.Matches(str);
var output = matches[0].Groups[1].Value;
// output == "sam@somedomain.com"
var str = "samir patel {samirpatel@test1.com{sam@somedomain.com}}";
var output = Regex.Match(str, "{([^{}]*)}").Groups[1].Value;
// output == "sam@somedomain.com"
(?<=\{)[^{}]*(?=\})
来得到这个结果,假设你使用的是除 JavaScript 以外的语言。例如在 C# 中,就是这样:result = Regex.Match(str, @"(?<=\{)[^{}]*(?=\})").Value;
\{([^{}]*)\}
并访问$1
以获取匹配结果:var myregexp = /\{([^{}]*)\}/;
var match = myregexp.exec(subject);
if (match != null) {
result = match[1];
}
[<{]([^<>{}]*)[>}]
应该可以工作,但有点奇怪。它将<
/{
和>
/}
视为可互换的,因此例如如果输入是a{b<c}>
,输出将是c
。希望这对您的目的没有问题。 - p.s.w.g