gpt4 book ai didi

python - 回文的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:33 27 4
gpt4 key购买 nike

我正在寻找一种特殊的回文。规则是

  1. 长度为5;
  2. 前两个字符,一个为大写字母,一个为数字;
  3. 第三个字符是小写字母。

对我来说主要的困难是组引用的未确定位置。如果我写 '(((([A-Z])([0-9]))|(([0-9])([A-Z])))[a-z]\5\4)',只有K2i2K会被匹配,2KiK2不会被匹配。要匹配 2KiK2,我必须编写 '(((([A-Z])([0-9]))|(([0-9])([A-Z])) )[a-z]\8\7)'.

那么正则表达式应该怎么写呢?谢谢。

最佳答案

\b(?=.{5})(?=(?:[A-Z]\d|\d[A-Z]))(.)(.)[a-z]\2\1\b

这断言(正向前瞻)有 5 个字符,并且前两个字符是大写数字或数字大写对。

一旦我们确定了这一点,剩下的就微不足道了。我们捕获前两个字符,检查小写字母,然后以相反的顺序匹配前两个捕获。

我还用单词边界 (\b) 包围了正则表达式,以确保它不会在单词中间匹配。

查看 Regex101并附有详细说明。

关于python - 回文的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25126729/

27 4 0