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;
}
您只是缺少"."来匹配*
之前的任何字符。
string szPattern = @"('{token:(.*)'})";
另外,如果不需要匹配整个表达式,则不需要周围的"()",因此可以简化为
string szPattern = @"'{token:(.*)'}";
现在匹配组只包含你的例子中的"one"。
如果您想在同一行中匹配多个令牌,则需要扩展它以使用+
操作符匹配一个或多个令牌实例
string szPattern = @"('{token:(.*?)'})+";