2013-03-16 3 views
0

Я попытался создать собственное регулярное выражение, чтобы сделать это, но, честно говоря, мой разум настолько ошеломлен этим, что я должен попросить о помощи ... Это может быть полезно для людей в будущее.Регулярное выражение: Match Hex/Key Strings

У меня есть следующие входные шаблоны:

06-6A-BF-05-AF-84-DF-A4-23-7C-BE-B4-6C-95-D7 
JK1T-XTSRV-2HC4D-RP4S7-ZMKRG 

Мне нужно, чтобы выбрать строки, как эти два из входной строки. Входная строка может выглядеть следующим образом:

JK1T-XTSRV-2HC4D-RP4S7-ZMKRG 
FDGF-A1S0M-5M8XJ-T08WC-BCZSJ 
C6-6C-1C-17-B7-EE-BE-EA-E3-7C-EF-23-6C-12-F1 
asdf234 ,f C6-324_EE 

В этом случае следующее будет возвращено:

JK1T-XTSRV-2HC4D-RP4S7-ZMKRG, FDGF-A1S0M-5M8XJ-T08WC-BCZSJ, C6-6C-1C-17-B7-EE-BE-EA-E3-7C-EF-23-6C-12-F1 

Таким образом, регулярное выражение будет необходимо иметь следующие ограничения, чтобы соответствовать строку:

  • 15 символов два (цифры или буквы) пар разделенных -
  • 5 четырех символов (цифр или Lette rs), разделенных -

Какое регулярное выражение будет соответствовать этим?

+0

Первые два входных примеров строк не являются ни шестнадцатеричные строки, ни соответствовать текстовое описание «5 пар четырех символов [так в оригинале] разделенных' -' « –

+0

Первая из строк, которые вы упоминаете, кажется,« hex », а другая - нет? Вы действительно заботитесь о том, чтобы каждый текст из 2 или 4 символов был шестнадцатеричным значением или нет? – Tuxdude

+0

@JanDvorak отредактировал :) извините за это. –

ответ

1

Вы должны использовать два регулярных выражения:

(\w{2}-){14}\w{2} 
\w{4}-(\w{5}-){3}\w{5} 

Второй тип на самом деле один четыре символ и четыре пять голец.

Тест 1: http://fiddle.re/h3ve6

Тест 2: http://fiddle.re/3a5e6

+0

Несомненно, я могу сделать два ... Спасибо ... тоже извините за беспорядок на ограничениях, я очень устал :) –

+0

Похоже, что второй соответствует двум в примере case FDGF-A1S0M-5M8XJ-T08WC -BCZSJ - это соответствует FDGF-A1S0M-5M8XJ-T08WC-BCZSJ и T08WC- –

+0

Извините, я сказал, что не тестировал второй, и кто-то отредактировал мой ответ, чтобы удалить этот бит! ;) позвольте мне взглянуть ... – James

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