gpt4 book ai didi

Javascript 正则表达式 : is there anyway to write a regex which gives true if backreference is NOT matched

转载 作者:行者123 更新时间:2023-11-30 08:01:27 24 4
gpt4 key购买 nike

所以这是我的问题:我正在使用连字符检查 2 年的输入。喜欢:

2001-2015

为了测试这一点,我使用了简单的正则表达式

/^([0-9]{4})-([0-9]{4})$/

我知道不需要分组,(19|20)[0-9]{2} 更接近于基本年份 exp,但请耐心等待。

现在,如果我的要求是仅在两年相同时才匹配它们,我可以使用像这样的反向引用:

/^([0-9]{4})-\1$/

匹配 2000-2000 但不匹配 2000-2014

我的实际需求恰恰相反。如果年份不同,我希望它匹配,但如果它们相同,我希望它匹配。也就是说,2000-2014 应该匹配。 2000-2000 不应该。

并且使用我发现的 bool 值的负数不是一个选项。我需要这个用于 huuuge 正则表达式,它应该匹配很多不同的日期格式。这只是其中的一部分。

有什么办法可以实现吗?

最佳答案

您可以使用否定前瞻来实现此目的:

^([0-9]{4})-(?!\1)[0-9]{4}$

Demo

这几乎是相同的模式,除了它使用反向引用插入条件检查。
如果 \1 在其位置匹配,(?!\1) 将失败。

关于Javascript 正则表达式 : is there anyway to write a regex which gives true if backreference is NOT matched,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27014833/

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