c#正则表达式如何在字符串中找到两条记录
本文关键字:记录 两条 正则表达式 字符串 | 更新日期: 2023-09-27 18:12:09
好的,我正在建立我的电子邮件模板引擎,并试图打破一些文本之间的{{{}}}}从我的这个文本
var matches = Regex.Matches("sdfsdfsdf{{{GetServices:Pilotage}}}sdfsdfsdf dfsdf{{{GetServices:Berth Fee}}}sdfdsf{{sss", "{{{(.*)}}}");
我如何解析这个字符串,使我得到这个结果数组。我一直在尝试不同的方法,但都无济于事。我怎样才能做到这一点呢
1)GetServices:Pilotage
2)GetServices:Berth Fee
你的尝试(虽然可能不是最佳的)应该工作,如果你强迫它是非贪婪的:
{{{(.*?)}}}
在*
后面加一个?
使用Grouping检索匹配项。
var input = "sdfsdfsdf{{{GetServices:Pilotage}}}sdfsdfsdf dfsdf{{{GetServices:Berth Fee}}}sdfdsf{{sss'", '"{{{(.*)}}}";
var matches = Regex.Matches(input, "''{''{''{(GetServices:[^{]*)''}''}''}");
var result = new List<string>();
foreach (Match match in matches)
{
if (match.Groups.Count == 2)
{
result.Add(match.Groups[1].ToString());
}
}
你可以试试这个regex:
('{{3}'w*':['w' ]*'}{3})+
编辑:
取值参见answer:查找字符串
模式为"'{{3}(.+?)'}{3}"
或"'{{3}(.*?)'}{3}"
。这取决于你的需要,中间的字符串是可选的还是必需的