正则表达式:匹配字符集的具体次数

时间:2012-04-05 23:12:13

标签: c# regex notepad++

好的,所以这可能是一个荒谬的愚蠢问题,但我似乎无法找到可行的答案,所以如果答案显而易见,请原谅我的无知。我想要的是一个正则表达式,它将匹配十六进制值正好8次。所以我尝试过这样的事情:

我的正则表达式:

 [0-9a-fA-F]{8}

示例输入:

 D651000000060D60FADF0DFCE080E020636263633534623231386339

示例失败输入(当我不想要时,我的给定正则表达式匹配):

 ........@%........$dc073bcc-6aa5

但由于某种原因,这对我不起作用。根据我的理解,{8}应该匹配前面的正则表达式8次...但这似乎不适用于C#或记事本++。

提前致谢!

2 个答案:

答案 0 :(得分:7)

如果你想要6个十六进制字符,那么你的问题会有点混乱:8次:

([0-9a-fA-F]{6}){8}

或8位十六进制字符:

如果您不想要8个字符,请

[0-9a-fA-F]{8}[0-9a-fA-F]{4,8}

我建议测试:

http://gskinner.com/RegExr/

如果这些没有得到它,你可以发布你想要匹配的值的样本(请注意,如果你在记事本++中有多行,你还需要寻找换行符)

答案 1 :(得分:1)

更直接的答案!我将在这些示例中使用的字符集从 0 到 9 的所有数字,只是为了简单起见。

  • 匹配所有数字,8 次: [0-9]{8}
  • 匹配所有数字,8 次或更多: [0-9]{8}[0-9]*(先匹配 8 次,然后匹配任意次数)

您可以在这里测试:https://regexr.com/

相关问题