Skip to main content
 首页 » 编程设计

c#之正则表达式并排匹配 2 个数字或字符

2024年02月04日32Renyi-Fan

我整个早上都在努力让它工作,但我似乎无法让它正确。

假设我有一个可能类似于 AA87AK8766KKTA%$ 的字符串。

我正试图从中取出 AA 66 KK。我无法弄清楚这一点,因为我已经尝试过

[A-Z0-9]{2} 
([A-Z0-9]{2})-([A-Z0-9]{2}) 

在我发现的其他人中,我无法做到这一点。

请您参考如下方法:

这将帮助您:

([A-Z0-9])\1 

现在解释:

我在捕获组中使用 [A-Z0-9],因此使用大括号。
\1 machtes 与之前匹配的捕获组号 1 完全相同的字符串,因此在您的示例中 ([A-Z0-9]) .参见 Regex101以获得完整的解释。

即如果我们在查询周围添加大括号 ([A-Z0-9]) 将获得捕获组号 2 因此我们必须修改 \1 以及:(([A-Z0-9])\2)

如果你想匹配同一个字符三次,你可以像这样修改正则表达式 ([A-Z0-9])\1{2}

你的错误

在 [A-Z0-9]{2} 中,{2} 表示匹配前一个模式两次,但该模式匹配所有字符和数字,因此结果即第一个匹配项:AA,但第二个匹配项是 87