我得到一个具有 {{some_text}} 格式的占位符的字符串。我想使用 C# 将其提取到集合中,并相信 RegEx 是实现此目的的最佳方法。正则表达式有点超出我的理解范围,但它似乎足够强大,可以在这种情况下工作。这是我的例子:
<a title="{{element='title'}}" href="{{url}}">
<img border="0" alt="{{element='title'}}" src="{{element='photo' property='src' maxwidth='135'}}" width="135" height="135" /></a>
<span>{{element='h1'}}</span>
<span><strong>{{element='price'}}<br /></strong></span>
我希望得到这样的结果:
集合[0] = "元素='标题'";
集合[1] = "url";
collection[2] = "element='photo' property='src' maxwidth='135'";
集合[3] = "element='h1'";
集合[4] = "元素='价格'";
请注意,也没有重复项,但如果很难做到,我不想让事情变得复杂。
我看到这篇文章做了类似的事情,但在括号内: How to extract the contents of square brackets in a string of text in c# using Regex
我的问题是我有双大括号而不是只有一个字符。我怎样才能做到这一点?
最佳答案
完全取自您链接的问题:
ICollection<string> matches =
Regex.Matches(s.Replace(Environment.NewLine, ""), @"\{\{([^}]*)\}\}")
.Cast<Match>()
.Select(x => x.Groups[1].Value)
.ToList();
foreach (string match in matches)
Console.WriteLine(match);
我已将 [ 和 ] 更改为 {{ 和 }}(转义)。这应该可以制作出您需要的集合。请务必阅读另一个问题的第一个答案,了解正则表达式的详细信息。如果您使用它,理解它很重要。
关于c# - 使用正则表达式提取大括号之间的字符串,即 {{content}},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3947596/