Regex在.net中查找令牌值

本文关键字:令牌 查找 net Regex | 更新日期: 2023-09-27 18:17:20

我需要一个比我更擅长Regex的人的帮助:)

我正在尝试使用。net (c#)

在字符串中找到特定令牌的值

字符串中有这样的记号{token:one}

我的函数如下:

public static ArrayList GetMatches(string szInput)
{
    // Example string
    // Lorem ipsum {token:me} lala this {token:other} other stuff
    ArrayList aResults = new ArrayList();
    string szPattern = @"('{token:(*)'})";
    foreach (Match match in Regex.Matches(szInput, szPattern))
    {
        aResults.Add(match.Value);
    }
    // It should contain me and other
    return aResults;
}

Regex在.net中查找令牌值

您只是缺少"."来匹配*之前的任何字符。

string szPattern = @"('{token:(.*)'})";

另外,如果不需要匹配整个表达式,则不需要周围的"()",因此可以简化为

string szPattern = @"'{token:(.*)'}";

现在匹配组只包含你的例子中的"one"。

如果您想在同一行中匹配多个令牌,则需要扩展它以使用+操作符匹配一个或多个令牌实例

string szPattern = @"('{token:(.*?)'})+";