在冒号分隔数据中获取子字符串的正则表达式问题

时间:2010-02-19 05:15:56

标签: .net regex

我正在使用一个正则表达式,它获取与匹配相关联的子字符串 即

"(MAC:[A-Z0-9]{12})"

这个正则表达式会在字符串中找到MAC :(某些字符)的出现。 这个正则表达式适用于小于10的字符,即

 "(MAC:[A-Z0-9]{8})"   -   WORKS

but,

 "(MAC:[A-Z0-9]{8})"   -   THROWS EXCEPTION

对此有任何帮助。

编辑:我使用类似的东西:

MatchCollection macName = Regex.Matches(otherdata,
                                        @"(MAC:[A-Z0-9]{10})+",
                                        RegexOptions.IgnoreCase);

在MAC后提取字符:

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

我应该在使用正则表达式后得到字符串:

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

我希望我已经清楚地解释了自己。

2 个答案:

答案 0 :(得分:0)

试试这个:

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

答案 1 :(得分:0)

或者这个:

"(MAC:[\d\w:]+?[\d\w:]*)"

这个进行额外检查以确保这是一个很好的匹配。