要搜索到嵌套级别的Regex表达式
本文关键字:Regex 表达式 搜索 嵌套 | 更新日期: 2023-09-27 18:21:38
如何使用Regex表达式搜索嵌套级别的搜索字符串
比如说:我有类似的字符串
var str = "samir patel {samirpatel@test1.com{sam@somedomain.com}}";
输出应该是sam@somedomain.com
您可以简单地使用以下模式:
{([^{}]*)}
这将匹配像{some content}
这样的任何字符串,该字符串不包含像{some content}
这样的任何其他组。你可以在这里测试。
您可以使用捕获此信息
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;
如果您使用JavaScript,请使用'{([^{}]*)'}
并访问$1
以获得匹配结果:
var myregexp = /'{([^{}]*)'}/;
var match = myregexp.exec(subject);
if (match != null) {
result = match[1];
}