gpt4 book ai didi

javascript - 正则表达式排除 4 个重复字符的序列,但捕获 2 个重复字符

转载 作者:太空宇宙 更新时间:2023-11-04 16:25:11 25 4
gpt4 key购买 nike

尝试在 JavaScript 中提出一个流程来帮助在不同技术堆栈之间转换自定义日期格式,以便它们都以相同的方式解析和显示所有内容。

我在想出一个好的正则表达式来转换时遇到了困难,

“dddd,dd/MM/yyyy”“dddd,DD/MM/yyyy”

还有,

“ddd,dd/MM/yyyy”“ddd,DD/MM/yyyy”

我尝试过否定前瞻,并且知道我可以执行类似 (?!d{3,4}) 的操作来排除 dddd 和 ddd 集合。我知道我也可以执行 d{1,2} 来捕获 dd。但是当我把它们放在一起时,如 /(?!d{3,4})(d{1,2})/g 它也捕获了 dddd 中的最后两个 dd 并给了我

“ddDD,DD/MM/yyyy”

我四处寻找示例,并能够修改示例来获取此正则表达式,

/(?=\b|^)(?!d*([d])\1\1\w*)d+(?:\b|$)/g

这满足了我的需要,但我不太明白它是如何捕获第一组等的。有没有办法可以根据我的需要简化它,或者有更简单的方法吗?

最佳答案

/(?=\b|^)(?!d*([d])\1\1\w*)d+(?:\b|$)/g 正则表达式只匹配 dd 作为一个完整的单词。

\b (当后跟单词 char 时)也匹配字符串的开头,因此,使用 (?=\b|^) 没有意义,它与 ^ 相同。

负向先行末尾的 \w* 不是必需的,它是多余的,就像负向先行内的任何其他可选子模式一样。

因此,您可以使用/\bdd\b/g

关于javascript - 正则表达式排除 4 个重复字符的序列,但捕获 2 个重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40287619/

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