![](/img/trans.png)
[英]Regex for matching content (function/namespace) between nested curly braces
[英]Regex for data inside nested curly braces?
我有以下数据记录:
@INPROCEEDINGS{conf/icsm/Ceccato07,
author = {Mariano Ceccato},
title = {Migrating Object Oriented code to Aspect Oriented Programming},
booktitle = {ICSM},
year = {2007},
pages = {497--498},
publisher = {IEEE},
bibdate = {2008-11-18},
bibsource = {DBLP, http://dblp.uni-trier.de/db/conf/icsm/icsm2007.html#Ceccato07},
crossref = {conf/icsm/2007},
owner = {Administrator},
timestamp = {2009.04.30},
url = {http://dx.doi.org/10.1109/ICSM.2007.4362668}
}
有没有办法我可以得到以下匹配,使得每一行都是单独的匹配
conf/icsm/Ceccato07
author = Mariano Ceccato
title = Migrating Object Oriented code to Aspect Oriented Programming
booktitle = ICSM
year = 2007
pages = 497--498
publisher = IEEE
bibdate = 2008-11-18
bibsource = DBLP, http://dblp.uni-trier.de/db/conf/icsm/icsm2007.html#Ceccato07
crossref = conf/icsm/2007
owner = Administrator
timestamp = 2009.04.30
url = http://dx.doi.org/10.1109/ICSM.2007.4362668
这是我的模式,它错过了第一行的匹配,并且一点也不摆脱花括号和逗号
string pattern = ".*[{].*}";
在单行模式下,此正则表达式将抓住两个外部大括号内的所有内容:
(?<=\{).*(?=\})
然后,您可以使用C#去除内部括号:
var regex = new Regex(@"(?<=\{).*(?=\})", RegexOptions.Singleline);
var match = regex.Match(input);
return match.Value.Replace("{", string.Empty).Replace("}", string.Empty);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.