我整个早上都在努力让它工作,但我似乎无法让它正确。
假设我有一个可能类似于 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
