gpt4 book ai didi

regex - 如何否定正则表达式?

转载 作者:行者123 更新时间:2023-12-04 21:09:37 26 4
gpt4 key购买 nike

我一直在玩正则表达式高尔夫并确定了一个正则表达式,它包含我不应该匹配的所有单词,但没有一个我应该匹配的单词。这个想法是我可以简单地否定正则表达式,然后得到相反的结果(包括我应该匹配的所有单词,而没有其他单词)。

我想出的正则表达式 (\w)(\w)\2\1匹配任何有模式的东西 abba ,所以我想使用负面环视 (?!(\w)(\w)\2\1)将我与任何不符合模式的东西相匹配 abba但是现在它只是突出显示了所有内容,如果您想尝试,这里是 URL:http://regex.alf.nu/4

最佳答案

在我看来,您想排除包含那些重复符号的匹配字符串。因此,您需要添加 \w* (0 个或多个字字符)在要测试重复的字符之前。


^(?!\w*(\w)(\w)\2\1).*
^^^

regex demo .

所以, (?!\w*(\w)(\w)\2\1)前瞻在字符串的开头执行以下检查:如果有 0+ 个字母数字/下划线字符后跟 1 和 2 个字符,然后是第二个字符,然后是第一个捕获的字符,则不返回匹配项(匹配失败) )。

您不需要 .*如果您不打算匹配文本(即,如果您只是检查是否存在匹配),则部分。但是,如果要排除匹配空字符串,只需使用 .+而不是 .* ( + 匹配 1 次或多次出现的量化子模式)。

关于regex - 如何否定正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37446442/

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