-2

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

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

例子:

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

谢谢!

4

1 回答 1

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);
}
于 2013-03-18T17:16:36.587 回答