从占位符C#获取字符串值

丰隆

我有模式字符串:“ Hello {Name},欢迎来到{Country}
和完整值字符串:“ Hello Scott,欢迎来到VietNam
如何提取{Name}和{Country}的值:
Name = Scott,国家/地区= VietNam
我已经看到一些正则表达式来解决此问题,但是我可以在这里应用模糊匹配吗?
例如,使用反向字符串“ Welcome to VietNam,Hello Scott ”,我们也必须更改正则表达式吗?

海洋

作为更通用的解决方案,您可以执行以下操作:

public Dictionary<string, string> GetMatches(string pattern, string source)
{
    var tokens = new List<string>();
    var matches = new Dictionary<string, string>();

    pattern = Regex.Escape(pattern);

    pattern = Regex.Replace(pattern, @"\\{.*?}", (match) =>
        {
            var name = match.Value.Substring(2, match.Value.Length - 3);

            tokens.add(name);

            return $"(?<{name}>.*)";
        });

    var sourceMatches = Regex.Matches(source, pattern);

    foreach (var name in tokens)
    {
        matches[name] = sourceMatches[0].Groups[name].Value;
    }

    return matches;
}

该方法从模式中提取标记名称,然后用名为捕获组的正则表达式的等效语法替换标记。接下来,它将修改后的模式用作正则表达式以从源字符串中提取值。最后,它使用捕获的令牌名称和命名的捕获组来构建要返回的字典。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从占位符C#获取字符串值

来自分类Dev

在C#中获取字符串之间的值

来自分类Dev

如何获取字符串C ++中字符的值?

来自分类Dev

从字符串值获取字符?

来自分类Dev

在C#中获取字符串的ASCII值以计算简单CRC

来自分类Dev

C#从数据集获取字符串异常

来自分类Dev

在字符串C#中获取字母的出现

来自分类Dev

仅获取字符串 C# 的编号

来自分类Dev

动态获取字符串值

来自分类Dev

从URL获取字符串值

来自分类Dev

获取字符串的特定值

来自分类Dev

从showOptionDialog获取字符串值

来自分类Dev

从URL获取字符串值

来自分类Dev

获取字符串值,javascript

来自分类Dev

使用SQL获取字符串中的定界符之间的值

来自分类Dev

使用SQL获取字符串中的定界符之间的值

来自分类Dev

在定界符后到行尾获取字符串

来自分类Dev

从(“ \ n”)换行符获取字符串

来自分类Dev

C ++正则表达式。使用定界符获取字符串

来自分类Dev

将带值的字符串与带占位符的字符串进行比较以从中查找值

来自分类Dev

将带值的字符串与带占位符的字符串进行比较以从中查找值

来自分类Dev

需要从C#中的分隔符提取字符串

来自分类Dev

从字符串值C#获取非数字值

来自分类Dev

从字符串值C#获取非数字值

来自分类Dev

C#如何获取字符串中字符的长度

来自分类Dev

C#获取字符串中两个字符之间的字符串

来自分类Dev

如何编写正则表达式模式以在 c# 中获取字符串的子字符串

来自分类Dev

Swift如何使用枚举获取字符串值

来自分类常见问题

从Java中的枚举获取字符串值