正则表达式以获取某些以冒号分隔的字段

时间:2010-02-19 09:36:05

标签: .net regex

我需要提取字符串

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 个答案:

答案 0 :(得分:3)

(MAC:[A-Z0-9:]+)将匹配:MAC:BFEBFBFF000006FB00:1E:37:54:AE:C8
(MAC:[A-Z0-9]+)将匹配:MAC:BFEBFBFF000006FB00

答案 1 :(得分:2)

(MAC:(([A-F0-9]+:*)))

Mac地址是十六进制字符...所以它是A-F而不是A-Z。

PS:我测试了表达式。

答案 2 :(得分:1)

该表达式表明您将拥有多个[A-Z0-9]的10个字符的序列,而不是所需的四个字符串。

你的正则表达式匹配

MAC:BFEBFBFF00

如果输入类似于您的示例,您可以使用像这样的简单正则表达式

MAC:[A-F0-9:]+

否则,如果你想要非常具体,你可以做这样的事情

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

正如The Elite Gentleman所指出的那样,如果你正在寻找十六进制数字,你可以使用A-F。