2015-03-19 2 views
2

У меня есть регулярное выражение, которое идентифицирует 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 

Выход - это руководство, за которым следует тире ('-') и номер.

Как я могу получить такое регулярное выражение?

ответ

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; 
+0

@Umirov - Что делать, если вход будет содержать несколько Guids? Я предполагаю, что на входе может быть несколько Guid, но комбинация «Guid-Number» будет только одна – TBAG

+0

@TBAG Извините, неверно истолковал ваш вопрос. Я обновил ответ. Он соответствует шаблону «guid-number». –

+0

Спасибо большое! Это сработало – TBAG

Смежные вопросы