当前位置: 首页 > 知识库问答 >
问题:

否定RE2语法中的匹配?

曾承弼
2023-03-14

如何在RE2中为“不以4或5开头的匹配字符串”编写正则表达式

在PCRE中,我会使用^(?!4),但RE2不支持该语法。

共有2个答案

姜志
2023-03-14

我也有这个问题,但我在寻找字符串,而不是单个字符。

我这样做的方式是看两遍。

首先,找到所有匹配的项目,然后过滤它们以获得最终答案

  • test data
    aaabaraaa
    aaafooaaa
    aaazooaaa
    aaaqooaaa
    

    使用PCRE很容易=

    使用re2我会选择分而治之:使用组缩小范围,然后过滤。

    [1]PCRE:Perl兼容正则表达式

通建安
2023-03-14

您可以使用此正则表达式:

^[^45]

^匹配开始,并且[^45]匹配开始时除4或5之外的任何内容。

 类似资料:
  • 我需要在较大的文档中查找可能是信用卡详细信息的数字,例如346490606109917。我想忽略其中包含信用卡风格细节的较大数字,例如96213464906061099171。 在常规正则表达式中(请原谅这个双关语),我可以使用

  • RE2

    RE2 是一个快速、安全和线程友好的 C++正则表达式引擎。 例子: // Copyright 2008 The RE2 Authors.  All Rights Reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.#includ

  • 正如文档所描述的,这将否定单个给定字符或字符范围的字符集。 然后我尝试解析一些测试用例文本(每个测试用例输入一个字符): 预期失败 预期成功 预期失败 预期失败 预期成功 预期失败 预期失败 预期失败 如果有关系,我将使用NodeJS的antlr4ts 0.5.0-alpha.4. 默认错误监听器打印,例如 第1行:0输入“+”不匹配,需要单词 我是否误解了ANTLR的操作符? 这是应该报告的bu

  • 我刚刚开始探索perl6语法。如何创建一个标记“行”来匹配行首和行尾之间的所有内容?我尝试了以下方法,但没有成功:

  • 因此,我最近一直在使用NLP,但除了/test/这样非常简单的匹配之外,我在使用它们的regex语法时遇到了麻烦。我正在寻找的最终游戏是匹配在其内容的某个地方包含特定单词的短语。我试图建模的语音模式是非常结构化的,但因为人类的语音是可变的,短语可以以无数种方式开始,但只要短语包含特定的关键词,我就想计算它。作为一个例子,我试图用TokensRegex建模的regex是: 对我来说,从他们的文档中看

  • 我在这里做错了什么? 尝试匹配任何包含空格、小写、大写或数字的字符串。特殊字符也很好,但我认为这需要转义某些字符。 这显然只测试上限、下限、数字和空格。但不管用。 *更新*