c# - 使用正则表达式提取大括号之间的字符串,即 {{content}}

标签 c# .net regex

我得到一个具有 {{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/

相关文章:

c# - 我如何可靠地测试/基准测试 .Net HashSet<T> 对象的大小(包括空桶)?

c# - .NET Compact Framework - 基于 Cookie 的 Web 服务访问

JavaScript 正则表达式不起作用

python - 检测和更改 PDF 中的字符串

c# - 使用继承自相同接口(interface) Console .Net Core 的类进行依赖注入(inject)

c# - 如何读取字符串直到逗号,然后保存该位并显示它?

c# - 将字符串与 string.Format() 对齐

c# - 传递 IOC 容器的替代方案

.net - 如何阻止机器人发布并导致异常

javascript:查找/替换正则表达式帮助 - 粗体、斜体和特定字符