gpt4 book ai didi

regex - 如何否定Groovy Match运算符?

转载 作者:行者123 更新时间:2023-12-03 11:20:47 27 4
gpt4 key购买 nike

documentation提到了三个正则表达式特定的运算符:

  • 返回~Pattern
  • =~重现Matcher
  • ==~返回boolean

  • 现在,我该如何否定最后一个? (我同意其他人不能有任何有意义的否定。)

    我尝试了显而易见的想法:

    println 'ab' ==~ /^a.*/ // true: yay, matches, let's change the input
    println 'bb' ==~ /^a.*/ // false: of course it doesn't match, let's negate the operator
    println 'bb' !=~ /^a.*/ // true: yay, doesn't match, let change the input again
    println 'ab' !=~ /^a.*/ // true: ... ???

    我猜最后两个应该这样解释:
    println 'abc' != ~/^b.*/

    在这里我可以看到 new String("abc") != new Pattern("^b.*")true

    最佳答案

    AFAIK,在Groovy中没有否定的正则表达式匹配运算符。

    因此,正如cfrick已经提到的那样,最好的答案似乎是否定整个表达式:

    println !('bb' ==~ /^a.*/)

    另一个解决方案是将正则表达式反转,但在我看来,它的可读性较差:

    How can I invert a regular expression in JavaScript?

    关于regex - 如何否定Groovy Match运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081919/

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