gpt4 book ai didi

regex - 四个字母的单词至少有一个 "j",优雅且最兼容的正则表达式解决方案?

转载 作者:行者123 更新时间:2023-12-04 21:54:33 24 4
gpt4 key购买 nike

我有这个问题让我挠头:

有没有办法使用正则表达式来测试至少有一个字母“J”的 4 个字符的字符串?这是我带来的:

^(j...|.j..|..j.|...j)$

是的,我承认这很丑,如果问题将 4 个字符更改为 10 个字符,或者将“至少一个 j”更改为“至少一个 j 和一个 k”,那会很生气

为此编写 RegEx 的更优雅和兼容的方式是什么?

补充问题:
  • 如果没有简单的答案,在学术上,RegExp 的极限是什么?为什么不能解决这么简单的问题?
  • 任何适合此类任务的 DSL?
  • “至少有一个 j 和一个 k 的 10 个字符串”的最佳正则表达式是什么?
  • 最佳答案

    如果您的正则表达式引擎支持前瞻(大多数支持),您可以使用

    ^(?=.*j).{4}$

    前瞻 (?=.*j)断言存在 j字符串中的某个地方,而不实际消耗任何匹配的字符串。以下 .{4}然后将匹配一个四字符的字符串。
    ^$ anchor 确保字符串完全匹配。

    如果要添加更多约束,只需添加另一个前瞻:
    ^(?=.*j)(?=.*k).{10}$

    如果至少有一个 j 则匹配和一个 k出现在一个长度正好为 10 个字符的字符串中。等等...

    关于regex - 四个字母的单词至少有一个 "j",优雅且最兼容的正则表达式解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4176988/

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