C#Regex帮助获得多个值

时间:2010-10-22 00:31:52

标签: c# .net regex

需要帮助使用Regex从字符串中获取多个值。我很好从字符串中获取单个值但不是多个。

我有这个字符串:

[message:USERPIN]Message to send to the user

我需要提取USERPIN和消息。我知道如何获得销钉:

 Match sendMessage = Regex.Match(message, "\\[message:[A-Z1-9]{5}\\]");

只是不确定如何同时获取这两个值。

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

使用命名组轻松访问:

Match sendMessage = Regex.Match(message,
    @"\[message:(?<userpin>[A-Z1-9]{5})\](?<message>.+)");

string pin = sendMessage.Groups["userpin"].Value;
string message = sendMessage.Groups["message"].Value;

答案 1 :(得分:0)

var match = Regex.Match(message, @"\[message:([^\]]+)\](.*)");

之后 - 使用调试器检查match.Groups - 您必须看到2个字符串。

答案 2 :(得分:0)

您需要使用编号组。

Match sendMessage = Regex.Match(message, "\\[message:([A-Z1-9]{5})(.*)\\]");
string firstMatch = sendMessage.Groups[1].Value;
string secondMatch = sendMessage.Groups[2].Value;