繁体   English   中英

正则表达式嵌套大括号内的数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM