从字符串中提取标记

Dom*_*tal -2 html c# regex string token

我有一个 html 文件,令牌数量未知。用户稍后会将关键字分配给某些数据。我想确定 html 包含多少令牌。标记可以看起来像:¤SomeID¤ 或 ¤Name¤ 甚至 ¤SomeLongerWord¤。

有人可以给我一个带有正则表达式的完整代码,它会将令牌从字符串中收集到列表中吗?

例子:

string ExtractFromThis = "Hello ¤Name¤, do you speak ¤SomeLanguage¤?"
List<string> IldLikeToHave = Magic(ExtractFromThis); 
//IldLikeToHave should contain {"¤Name¤", "¤SomeLanguage¤"}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Xav*_*ica 6

您可以使用一个简单的正则表达式,例如¤.*?¤(注意非贪婪星号)匹配¤. 这是一个示例。您可以使用Regex.Matches()获取所有匹配项。

如果您有兴趣获取分隔符内的文本,您也可以将量词放入这样的捕获组中¤(.*?)¤,并用于Match.Groups()获取每个匹配项的捕获组。

我不使用 C#,但这里有一个它应该是什么样子的示例:

string pattern = @"¤(.*?)¤";
string input = "Hello ¤Name¤, do you speak ¤SomeLanguage¤?";
MatchCollection matches = Regex.Matches(input, pattern);
List<string> l = new List<string>();
foreach (Match match in matches) {
     l.add(match.Groups[1].Value);
}
Run Code Online (Sandbox Code Playgroud)