gpt4 book ai didi

regex - 用正则表达式判断字符串是偶数还是奇数

转载 作者:行者123 更新时间:2023-12-04 15:27:30 34 4
gpt4 key购买 nike

我在使用超过 {a, b, c} 的字符串集构建正则表达式时遇到问题那是一个 odd长度与 正好a .这是我迄今为止最好的尝试:

(bb|bc|cb|cc)*a(bb|bc|cb|cc)*

这甚至对 b 也有好处和 ca 的两侧,但不占奇数 bc a 两侧的组合.

任何提示?

最佳答案

您的字符串将是前缀后跟 a 后跟后缀。

前缀和后缀都可以为零长度。如果不是,则它们必须是均匀的或不均匀的。这意味着您有两种主要情况。

EVENPREFIX a EVENSUFFIX | UNEVENPREFIX a UNEVENSUFFIX

试试这个( 不完整 错误 ):
([bc][bc])*a([bc][bc])*|([bc][bc][bc])*a([bc][bc][bc])*

仍然缺少一个不均匀的情况:单个 [bc] :
(([bc][bc])*a([bc][bc])*)|([bc]([bc][bc])*a[bc]([bc][bc])*)

根据 http://www.fileformat.info/tool/regex.htm ,这匹配
  • a
  • cac
  • ccabb

  • 我希望它也与其余的相匹配......

    左侧保证 b 的偶数(或空)序列或 c .
    右边是单个 bc后跟两个的倍数(以保持不均匀)。

    Kobi 提出了对上述内容的改进:
    ([bc][bc])*(a|[bc]a[bc])([bc][bc])*

    这是如何运作的?

    第一组保证是偶数。第二组保证不均匀,单个 a里面。第三组保证是偶数。因此,整体保证是不均匀的。

    关于regex - 用正则表达式判断字符串是偶数还是奇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3625899/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com