从字符串中提取标记

时间:2013-03-18 16:43:31

标签: c# html 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¤"}

谢谢!

1 个答案:

答案 0 :(得分:4)

你可以使用一个简单的正则表达式,例如¤.*?¤(注意非贪婪的星),匹配¤中包含的任何内容。这是一个sample。您可以使用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);
}