正则表达式以识别Guid后跟数字

时间:2015-03-19 06:42:26

标签: c# regex string

我有一个可以识别Guid的正则表达式。

string pattern = @"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"

我有一个可识别数字的正则表达式

string pattern = "^[0-9]+$"

我需要结合这两个正则表达式。 我的任务是从句子中识别以下类型的字符串。

  Input : id=1 name=4a3779ab-56cc-41b5-ac7c-03bbf673439c-53607.jpg count=53607
  Output : 4a3779ab-56cc-41b5-ac7c-03bbf673439c-53607.jpg 
   or just 4a3779ab-56cc-41b5-ac7c-03bbf673439c-53607

输出是一个Guid,后跟一个短划线(' - ')和一个数字。

我怎样才能获得这种正则表达式?

1 个答案:

答案 0 :(得分:4)

您可以使用以下正则表达式:

\b[\dA-F]{8}-[\dA-F]{4}-[\dA-F]{4}-[\dA-F]{4}-[\dA-F]{12}-\d+

Regular expression visualization

Demo

string input = "id=1 name=4a3779ab-56cc-41b5-ac7c-03bbf673439c-53607.jpg count=53607";
Match m = Regex.Match(input, @"\b[\dA-F]{8}-[\dA-F]{4}-[\dA-F]{4}-[\dA-F]{4}-[\dA-F]{12}-\d+", RegexOptions.IgnoreCase);
string output = null;
if (m.Success)
    output = m.Value;