Регулярное выражение для получения определенных полей, разделенных двоеточиями - PullRequest
1 голос
/ 19 февраля 2010

Мне нужно извлечь строку

MAC:BFEBFBFF000006FB00:1E:37:54:AE:C8 

из

ADMIN:1EXT:0NOR:0OUT:1PRI:1BAT:1MOD:1MAC:BFEBFBFF000006FB00:1E:37:54:AE:C8 

Используемое мной регулярное выражение:

(MAC:[A-Z0-9]{10})+

Но все равно я не получаюожидаемый результат

Ответы [ 3 ]

3 голосов
/ 19 февраля 2010

(MAC:[A-Z0-9:]+) будет соответствовать: MAC:BFEBFBFF000006FB00:1E:37:54:AE:C8.
(MAC:[A-Z0-9]+) будет соответствовать: MAC:BFEBFBFF000006FB00.

2 голосов
/ 19 февраля 2010
(MAC:(([A-F0-9]+:*)))

Адрес Mac в шестнадцатеричных символах ... поэтому это A-F, а не A-Z.

PS: я проверил выражение.

1 голос
/ 19 февраля 2010

Выражение гласит, что у вас будет несколько последовательностей из 10 символов [A-Z0-9], что не является четвертым вариантом желаемой строки.

Ваше регулярное выражение соответствует

MAC:BFEBFBFF00

Если ввод похож на ваш пример, вы можете использовать простое регулярное выражение, подобное этому

MAC:[A-F0-9:]+

В противном случае, вы можете сделать что-то подобное, если хотите быть очень конкретным

MAC:[A-F0-9]{18}(:[A-Z0-9]{2}){5}

Как указал The Elite Gentleman, вы можете получить, просто используя A-F, если вы ищете шестнадцатеричные числа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...