【问题标题】:RE2/Perl RegEx, selecting all rows without any of multiple wordsRE2/Perl RegEx,选择没有多个单词的所有行
【发布时间】:2019-08-29 18:19:28
【问题描述】:

我在 RE2 不可用时遇到了问题。 使用普通的正则表达式,我会做这样的事情:

^(?!text|someText|.*cont).*

排除以“text”、“someText”开头并包含“cont”的行。不幸的是,RE2 不支持负前瞻。

我们如何解决这个问题?

【问题讨论】:

    标签: regex regex-negation re2


    【解决方案1】:

    您可以通过使用正匹配来处理负前瞻条件,然后期待它的否定。例如:

    $input = "text is good";
    if ($input !~ m/^(text|someText).*$/ && $input !~ m/^.*cont.*$/) {
        print "MATCH";
    }
    else {
        print "NO MATCH";
    }
    

    【讨论】:

    • 不幸的是,它必须使用单个正则表达式字符串来完成,这也可能吗?
    • 是的,可能,但我认为这种模式可能看起来很丑陋,甚至有缺陷。我给你的建议有什么问题?
    • 用作配置参数:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    相关资源
    最近更新 更多