首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在pyparsing中为此编写语法:匹配一组单词但不包含给定模式

在pyparsing中,可以使用SkipToFollowedBy来匹配一组单词但不包含给定模式。具体实现方法如下:

代码语言:python
代码运行次数:0
复制
from pyparsing import *

# 定义不包含的模式
exclude_pattern = Literal("exclude")

# 定义要匹配的单词
word = Word(alphanums + "_")

# 使用SkipTo和FollowedBy来匹配一组单词但不包含给定模式
pattern = SkipTo(exclude_pattern) + FollowedBy(exclude_pattern)

# 测试
test_string = "this is a test string, exclude this"
result = pattern.parseString(test_string)
print(result[0])  # 输出:this is a test string, 

在上面的代码中,我们首先定义了一个不包含的模式exclude_pattern,然后定义了要匹配的单词word。接着,我们使用SkipToFollowedBy来匹配一组单词但不包含给定模式。最后,我们对测试字符串进行了测试,并输出了匹配结果。

需要注意的是,在实际使用中,可能需要对wordexclude_pattern进行进一步的限制,以避免匹配到不符合要求的单词或模式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

学校早这么教正则表达式,少走多少弯路!那个分组用法震到我了

在本文中,我们将探索如何在grep的GNU版本中使用正则表达式的基础知识,该版本在大多数Linux操作系统默认可用。 ? grep的正则表达式 正则表达式(regex)是与一组字符串匹配模式。...在其最简单的形式,当没有给定正则表达式类型时,grep将搜索模式解释为基本正则表达式。 要将模式解释为扩展正则表达式,请使用-E(或--tended-regexp)选项。...方括号表达式 方括号表达式允许通过将一组字符括在方括号[]匹配它们。...以下模式匹配以“co”开头、后跟除“l”和“la”之外的任何字母的任意字符串组合,“coca”、“cobalt”等,但不匹配包含“cola”的行: grep 'co[^l]a' file.txt 你可以在方括号内指定一个字符范围...如果嵌入到较大的单词,它将与单词匹配: grep '\b[ao]bject\b' file.txt 写在最后 正则表达式用于文本编辑器、编程语言和命令行工具,grep、sed和awk。

2.4K30

使用 pyparsing 的部分求解

当我们在使用 pyparsing 模块进行解析时,这就需要我们定义语法规则并编写相应的解析器。...1、问题背景需要能够解析使用 OpenDocument 公式语法的公式,将其解析成 Python 可以理解的语法但不求解变量值,然后能够多次求解公式,并改变变量的值。...公式可以是用户输入的,因此 pyparsing 允许同时有效地处理公式语法和清理用户输入。有很多 pyparsing 的优秀示例,但所有数学示例似乎都假设立即求解当前范围内的所有内容。...然后,一旦你让它正常工作,使用一个记忆装饰器来缓存这些查询结果对,以便给定表达式只需要获取/反序列化一次。...定义了一个简单的语法规则,该规则可以解析包含整数、变量和四则运算符的表达式。

10210
  • 正则表达式

    最少匹配n次且最多匹配m次。例如,"o{1,3}"将匹配"fooooood"的前三个o为一组, 后三个o为一组。"o{0,1}"等价于"o?"。请注意在逗号和两个数之间不能有空格。 ?...匹配包含的任意一个字符。例如,"[abc]"可以匹配"plain"的"a"。 [^xyz] 负值字符集合。匹配包含的任意字符。例如,"[^abc]"可以匹配"plain"的"plin"。...例如,"er\b"可以匹配"never"的"er",但不匹配"verb"的"er"。 \B 匹配单词边界。"er\B"能匹配"verb"的"er",但不匹配"never"的"er"。...类似但不等价于"[A-Za-z0-9_]",这里的"单词"字符使用Unicode字符集。 \W 匹配任何非单词字符。等价于"[^A-Za-z0-9_]"。 \xn 匹配n,其中n为十六进制转义值。...是非贪婪模式何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在: .*?x 就是取前面任意长度的字符,直到一个x出现

    1K120

    普林斯顿算法讲义(三)

    **给定两个字符串s和t,编写一个程序 Subsequence.java,确定s是否是t的子序列。也就是说,s的字母应该按照相同的顺序出现在t但不一定是连续的。...给定一个网页列表,创建包含网页包含单词的符号表。将每个单词与出现该单词的网页列表关联起来。编写一个程序,读取一个网页列表,创建符号表,并通过返回包含该查询单词的网页列表来支持单词查询。...生物学家使用PROSITE 模式语法规则在生物数据搜索模式。这是CBD FUNGAL(访问代码 PS00562)的原始数据。每行包含各种信息。...不使用 Java 内置的正则表达式,编写一个程序 Wildcard.java 来查找与给定模式匹配的字典的所有单词。特殊符号匹配任意零个或多个字符。...因此,例如模式"ward"匹配单词"ward"和"wildcard"。特殊符号.匹配任何一个字符。您的程序应将模式作为命令行参数读取,并从标准输入读取单词列表(由空格分隔)。 通配符模式匹配器。

    14410

    Grep(Regex)的正则表达式

    在本文中,我们将探讨在grep的GNU版本如何使用正则表达式的基础,大多数Linux操作系统默认情况下都提供此功能。 Grep正则表达式 正则表达式或正则表达式是与一组字符串匹配模式。...在GNU的grep实现,基本正则表达式和扩展正则表达式语法之间没有功能上的区别。唯一的区别是,在基本正则表达式,元字符?,+,{,|,(和)被解释为文字字符。...[]匹配一组字符。...以下模式匹配以“ co”开头的字符串的任意组合,后接除“ l”之后为“ la”的任何字母(例如“ coca”,“ cobalt”等),但不匹配包含“ cola”的行 ”: $grep 'co[^l]a...\s 匹配一个空格。 以下模式匹配单独的单词“ abject”和“ object”。

    2.7K40

    笔记·正则表达式和re库

    比如我们编写爬虫收集数据,首先都得到网页源码,但是我们要如何提取有效数据呢,这时候我们就需要使用正则表达式来进行匹配语法 实例·简单表达式 我们来看看以下表达式: /a/ #匹配字符串的'a'(小写...例如,下面的表达式匹配单词 Chapter 的字符串 ter,因为它出现在字边界的前面: /ter\b/ 下面的表达式匹配 Chapter 的字符串 apt,但不匹配 aptitude 的字符串...对于 \B 非字边界运算符,位置并不重要,因为匹配不关心究竟是单词的开头还是结尾,而是中间 反向引用 对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区,所捕获的每个子匹配都按照在正则表达式模式从左到右出现的顺序存储...确定重复出现 到现在为止,你已经知道如何去匹配一个字母或数字,但更多的情况下,可能要匹配一个单词一组数字。一个单词有若干个字母组成,一组数字有若干个单数组成。...由于在上面的表达式只有一组括号,因此,只有一个被捕获的”子匹配项”。 在上面的示例,您只需要使用括号来组合单词 Chapter 和 Section 之间的选择。

    99330

    ​如何在Linux中使用grep命令?

    这个命令对于Linux操作系统的日常任务非常有用。 grep命令可以搜索与给定文本匹配的行,以便在您使用命令提及的给定文件内查找。...输出是一组行,每行应具有您使用grep命令键入的特定单词单词短语。...但是,如果要在其他位置的文件搜索文本,则必须使用绝对路径。 要搜索单词短语时,请记住使用“”or“”。 您可以指定上述语法中提到的一个或多个文件名。 ?...语法中所述,我们也可以在以下方法中使用这个grep命令。首先,我们使用cat命令查看文件,然后使用grep输出该关键字。 ? 两种方法都是正确的。...grep -w boo example.txt 如何在单个文件搜索两个单词 grep -w'word1 | word2'example.txt 选项8:使用-v选项可忽略搜索结果的关键字 ?

    3K41

    浅谈Perl正则表达式

    一、简介 Perl正则表达式模式指在字符串寻找的特定序列的字符,由反斜线包含:/def/即Perl正则表达式模式def。...2、字符[]和[^] []意味着匹配一组字符的一个,/a[0123456789]c/将匹配a加数字加c的字符串。...4、转义字符 如果你想在Perl正则表达式模式包含通常被看作特殊意义的字符,须在其前加斜线”\”。:/\*+/\*即表示字符*,而不是上面提到的一个或多个字符的含义。斜线的表示为/\\/。...\n”); } 例3:\b在单词边界匹配:/\bdef/匹配def和defghi等以def打头的单词但不匹配abcdef。...例4:\B在单词内部匹配:/\Bdef/匹配abcdef等,但不匹配def;/def\B/匹配defghi等;/\Bdef\B/匹配cdefg、abcdefghi等,但不匹配def,defghi,abcdef

    1K30

    一文搞定Python正则

    匹配0个或者1个任意字符(非贪婪模式) ^ 开始位置 $ 结束位置 \s 匹配任意空白 \S 匹配任意非空白 \d 匹配一个数字 \D 匹配一个非数字 \w 匹配一个单词字符,包含数字和字母 \W 匹配一个非单词字符...最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 ?...例如,“er\b”可以匹配“never”的“er”,但不匹配“verb”的“er”;“\b1_”可以匹配“1_23”的“1_”,但不匹配“21_3”的“1_”。 \B 匹配单词边界。...类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。 \W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 \xn 匹配n,其中n为十六进制转义值。...flags 标志位,用于控制正则表达式的匹配方式,:是否区分大小写,多行匹配等 demo 结果是列表形式 ? 如果提取的内容包含多个.*?

    1.7K10

    Linux常用命令03 - grep

    grep 在一个或多个输入文件搜索与给定模式匹配的行,并将每个匹配行写入标准输出。 如果没有指定文件,grep 将从标准输入读取,这通常是另一个命令的输出。...grep 命令语法 grep 命令的语法如下: grep [OPTIONS] PATTERN [FILE...] 方括号的项目是可选的。 OPTIONS - 既然可选,就是可以要可不要。...下面的示例演示如何在/etc 目录的所有文件搜索字符串 chasays.github.io: grep -r chasays.github.io /etc 输出将包括以文件的完整路径为前缀的匹配行:...例如,如果搜索“ gnu” ,所有“ gnu”嵌入在较大单词的行,“ cygnus”或“ magnum”将被匹配: grep gnu /usr/share/words cygnus gnu interregnum...下面的模式匹配包含 co (除了 l 以外的任何字母) a 的任何字符串组合,可可、钴等,但不匹配包含可乐的线, grep "co[^l]a" file.txt 若要转义下一个字符的特殊含义,请使用

    2K20

    正则表达式来了,Excel的正则表达式匹配示例

    在单元格查找特定字符串时,FIND函数和SEARCH函数非常方便。如何知道单元格是否包含给定模式匹配的信息?显然,可以使用正则表达式。...\b字符表示单词边界,意味着SKU是单独的单词,而不是较大字符串(23-MAR-2022)的一部分。 建立了模式后,可以继续编写公式。实质上,使用自定义函数与内置函数没有什么不同。...最后一组4位数字\d{4}后跟一个单词边界\b,以明确电话号码不能是较大号码的一部分。...假设希望查找不包含单词“lemons”的字符串,正则表达式如下: 模式:^((?!lemons).)*$ 显然,这里需要一些解释,对吗?负前瞻(?!...要匹配不以特定文本结尾的字符串,在搜索模式包含结尾字符串锚定:^((?!lemons).)*。 用于不区分大小写匹配的正则表达式 在经典正则表达式,有一种特殊的不区分大小写的匹配模式(?

    20.9K30

    正则表达式30分钟入门教程

    *连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。...这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b),这个单词会被捕获到编号为1的分组,然后是1个或几个空白符(\s+),最后是分组1捕获的内容(也就是前面匹配的那个单词...要包含注释的话,最好是启用“忽略模式里的空白符”选项,这样在编写表达式时能任意的添加空格,Tab,换行,而实际使用时这些都将被忽略。启用这个选项后,在#后面到这一行结束的所有文本都将被当成注释忽略掉。...一个经常被问到的问题是:是不是只能同时使用多行模式和单行模式的一种?答案是:不是。这两个选项之间没有任何关系,除了它们的名字比较相似(以至于让人感到疑惑)以外。...下面是一些未提到的元素的列表,包含语法和简单的说明。你可以在网上找到更详细的参考资料来学习它们–当你需要用到它们的时候。

    83900

    Python 正则表达式大全(下)

    ---- 正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身。一个正则表达式模式的字母和数字匹配同样的字符串。 多数字母和数字前加一个反斜杠时会拥有不同的含义。...模式元素( r'/t',等价于'//t')匹配相应的特殊字符。 下表列出了正则表达式模式语法的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。...用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k' [^...] 不在[]的字符:[^abc] 匹配除了a,b,c之外的字符。 re* 匹配0个或多个的表达式。...例如, 'er\b' 可以匹配"never" 的 'er',但不匹配 "verb" 的 'er'。 \B 匹配单词边界。'...er\B' 能匹配 "verb" 的 'er',但不匹配 "never" 的 'er'。 \n, \t, 等. 匹配一个换行符。匹配一个制表符。等 \1...\9 匹配第n个分组的子表达式。

    95710

    这可能是迄今为止最好的一篇正则入门教程-下

    B匹配不是单词开头或结束的位置[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符 例子:\S+匹配包含空白符的字符串。...这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b),这个单词会被捕获到编号为1的分组,然后是1个或几个空白符(\s+),最后是分组1捕获的内容(也就是前面匹配的那个单词...=ing\b),匹配以ing结尾的单词的前面部分(除了ing以外的部分),查找I'm singing while you're dancing.时,它会匹配sing和danc。 (?...例如,如果我们想查找这样的单词--它里面出现了字母q,但是q后面跟的不是字母u,我们可以尝试这样: \b\w*q[^u]\w*\b 匹配包含后面不是字母u的字母q的单词。...要包含注释的话,最好是启用“忽略模式里的空白符”选项,这样在编写表达式时能任意的添加空格,Tab,换行,而实际使用时这些都将被忽略。

    69450

    Python网络数据抓取(8):正则表达式

    实战 它的符号和语法在所有编程语言中都是通用的。为了理解正则表达式,我们将验证您在 Python 中进行网页抓取时可能遇到的某些字符串。 假设您想从网络上抓取电子邮件以用于公司的潜在客户开发流程。...import re pattern = "[a-zA-Z0-9]+@" 括号允许我们指定我们正在查找给定字符串(例如电子邮件)的字符。...我们将匹配模式,直到 @ 符号和括号后面的加号意味着我们正在寻找这些字符的一个或多个字符的任意组合。 由于电子邮件是由许多域提供的,因此我们必须指定我们正在寻找一个或多个大写和小写字母。...现在,假设我们需要将每个电话号码输入到不带连字符的连续数字字符串,但我们希望保留单词形式的连字符。我们将为此编写正则表达式。...但我们需要编写我们想要这个模式变成的内容。让我们保留该组但删除连字符。 每个反斜杠数字代表一个组,因此我们的新模式是将三个组连接在一起,而不使用连字符。

    10010

    一文搞定Python的正则表达式

    \D 匹配一个非数字 \w 匹配一个单词字符,包含数字和字母 \W 匹配一个非单词字符,包含数字和字母 abcd...最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。...\B 匹配单词边界。“er\B”能匹配“verb”的“er”,但不匹配“never”的“er”。 \cx 匹配由x指明的控制字符。...\w 匹配包括下划线的任何单词字符。类似但不等价于“A-Za-z0-9_”,这里的"单词"字符使用Unicode字符集。 \W 匹配任何非单词字符。...flags 标志位,用于控制正则表达式的匹配方式,:是否区分大小写,多行匹配等 demo 结果是列表形式 [007S8ZIlgy1ggpfjntr0gj315s068gmq.jpg] 如果提取的内容包含多个

    81911

    五步学会任何编程语言

    只需有一点编程经验(你可以从我们这里的几篇介绍性文章获得),你就可以在短短几天内(有时更短)学习任何编程语言。这并不是魔法,你也确实要为此付出一些努力。...1、语法 image.png 语言的语法描述了代码的结构。这包括如何逐行编写代码,以及用于构造代码语句的实际单词。...在实践,你的代码将不仅仅包含编程语言的关键字,可以肯定的是,有包含很多简单函数的库来帮助你做一些事情,诸如将输出打印到屏幕或显示窗口之类。然而,驱动这些库的逻辑始于编程语言的内置关键字。...通常情况下,在编写代码时你往往希望向计算机提供一组理论条件和一组操作指令,当满足每个条件时计算机就会采取这些操作。...例如,如果应用程序非常频繁地需要一个确认对话框,那么将其作为类的实例编写一次要比每次需要它时重新编写实现起来要容易得多。 你需要学习如何在编程语言中定义类和函数。

    42820

    何在 Linux 中使用 Grep 和正则表达式进行文本搜索?

    本文将详细介绍如何在 Linux 中使用 Grep 和正则表达式进行文本搜索。图片什么是 Grep?Grep 是一个命令行工具,用于在文本文件搜索匹配指定模式的行。...您可以指定多个文件名作为参数,或者使用通配符来匹配一组文件。...使用通配符搜索一组文件:grep "pattern" *.txt这将在当前目录的所有以 .txt 结尾的文件搜索匹配 "pattern" 的行。...总结Grep 是一个强大的工具,通过使用正则表达式,它可以帮助我们在 Linux 系统搜索和匹配特定的文本模式。本文介绍了基本的 Grep 用法和正则表达式语法,并提供了一些高级搜索的示例和选项。...您学习了如何使用正则表达式来搜索特定模式的行,如何在多个文件搜索,以及如何使用高级选项进行更精确的搜索。请记住,在使用 Grep 和正则表达式时,练习和实践非常重要。

    1.3K00

    自然语言处理简明教程自然语言处理简介Natural Language Tool Kit (NLTK)正则表达式文本清理文本分类分类器示例 饭店评论

    在实践,NLP 与教孩子学语言的过程非常类似。其大多数任务(单词、语句的理解,形成语法和结构都正确的语句等)对于人类而言都是非常自然的能 力。...正则表达式(regular expression) 是一种能对字符串进行有效匹配模式。我们会大量使用这种模式,以求从大量凌乱的文 本数据中提取出有意义的信息。...这些单词在一些 NPL 任务(说关于信息的检索和 分类的任务)是毫无意义的,这意味着这些单词通常不会产生很大的歧义。...通常情况下,目前所有的机器学习方法和算法都是根据数字/变量特征来编写的。所以这里最重要的问题之一,就是如何在语料库中用数字特征的形式来表示文本。...SVM 会在无限维空间中构造出一组超平面,它可被应用在 分类、回归或其他任务

    1.3K20

    RegularExpression

    目的 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”): 可以通过正则表达式,从字符串获取我们想要的特定部分。...最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 ?...匹配包含的任意字符。例如,“[^abc]”可以匹配“plain”的“plin”任一字符。 [a-z] 字符范围。匹配指定范围内的任意字符。...例如,“er\b”可以匹配“never”的“er”,但不匹配“verb”的“er”;“\b1_”可以匹配“1_23”的“1_”,但不匹配“21_3”的“1_”。 \B 匹配单词边界。...类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。 \W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 \xn 匹配n,其中n为十六进制转义值。

    77430
    领券