为什么这个正则表达式是匹配的?

本文关键字:正则表达式 为什么 | 更新日期: 2023-09-27 18:11:31

让我首先声明我不是最擅长正则表达式的。我想创建一个正则表达式来验证某个东西是十六进制数,但是这些数字是按2分组的。

我在网上找到的正则表达式很好,但不要检查2的分组。

例如:

Good (length % 2 == 0):

  • AF4C
  • 5 e8e6d
  • 8 c0f5c3e

Bad (length % 2 == 1):

  • E5F
  • D
  • 4 b2e4

我尝试的正则表达式:

var regex = new System.Text.RegularExpressions.Regex(@"^([0-9a-fA-f][0-9a-fA-f])+$");
regex.Match("3]").Success; //Why is this true?

var regex = new System.Text.RegularExpressions.Regex(@"^([0-9a-fA-f]{2})+$");
regex.Match("3]").Success; //Why is this true?

为什么这个正则表达式是匹配的?

就像用户Juhana在评论中回答的那样,我的问题是我写了A-f而不是' a - f '。快速修复,但把我逼疯了。