首页 > TAG信息列表 > pyparsing

pyparsing.operatorPrecedence不会在无效字符串上引发错误

我希望解析一个表示布尔表达式的字符串.以下代码基于许多示例,并使用pyparsing的operatorPrecedence帮助器. 问题是当字符串无法被合理地解析时,我希望代码引发异常.就目前而言,许多无效表达式只是悄悄地传递,并返回了错误的表达式. import pyparsing _A = pyparsing.Literal('A'

python-如何在pyparsing中匹配括号/括号

我有一个语法标记指定为: list_value = Suppress(oneOf("[ (")) + Group( delimitedList(string_value | int_value))("list") + Suppress(oneOf("] )")) 但是,这显然允许(foo,bar] 如何强制列表的开头和结尾字符必须匹配?解决方法:您可以在两个规则之间选择一个列表:一个规则用

在Python中声明简单的PyParsing递归语法的奇怪警告

我正在尝试使用PyParsing在Python中解析类似于CLIPS的语法. 我遇到问题的那段代码是: import pyparsing as pp ...some pyparsing tokens definitions... INTEGER_EXPRESSION = EXPRESSION RULE_NAME = SYMBOL RULE_PROPERTY = OB + pp.Literal('salience') + INTEGER_EXPRESSI

python-如何在PyParsing中验证动态定义的语法元素

我正在使用PyParsing实现一个相当复杂的语法的解析器. (如果可以的话,使用起来确实很愉快!) 语法有点“动态”,可以定义(各种)字母,进而定义其他定义中允许的元素.举个例子: alphabet: a b c lists: s1 = a b s2 = b c x 在此,字母意在定义列表定义中允许的元素.例如s1是有效的,但s

使用Python解析非结构化文本文件

我有一个文本文件,其中的一些片段如下所示: Page 1 of 515 Closing Report for Company Name LLC 222 N 9th Street, #100 & 200, Las Vegas, NV, 89101 File number: Jackie Grant Status: Fell Thru Primary cl

pyparsing中使用QuotedString

我在理解如何构建pyparsing解析器时遇到概念上的困难.步骤是:1)通过组合ParserElement的子类来构建解析器,以及2)使用解析器来解析字符串. 以下示例可以正常工作: from pyparsing import Word, Literal, alphas, alphanums, delimitedList, QuotedString name = Word(alphas+"_", a

python-段落的Pyparsing

pyparsing遇到了一个小问题,我似乎无法解决.我想写一条规则,为我解析多行段落.最终目标是最终得到一个递归语法,该语法将解析如下内容: Heading: awesome This is a paragraph and then a line break is inserted then we have more text but this is also a diff

python-使用pyparsing进行部分评估

我需要能够采用使用OpenDocument公式语法的公式,将其解析为Python可以理解的语法,但无需评估变量,然后能够通过更改变量的贵重物品多次评估公式. 公式可以作为用户输入,因此pyparsing使我既可以有效地处理公式语法,又可以清理用户输入.有很多很好的pyparsing示例,但是所有数学上的

pyparsing知道解析时递归表达式的深度吗?

我喜欢使用pyarsing定义parseAction的功能,但是我遇到了特定用例的障碍.接受输入字符串和以下简单语法: from pyparsing import * line = "[[one [two [three] two [three [four]]] one] zero]" token = Word(alphas) # Define the simple recursive grammar grammar = Forward()

pyparsing中获取与asXML()等效的数据结构?

我了解到在pyparsing中,您可以通过执行以下操作来命名元素/组/节点: token = pyparsing.Literal("Foobar")("element_name_here") 因此,我制作了一个示例程序对其进行测试: import pyparsing as pp Prefix = pp.Word(pp.nums)("Prefix") Name = pp.Literal("FOOBAR")("N

引发pyparsing中的自定义异常

我已经将这些定义为pyparsing语法的一部分 argument = oneOf(valid_arguments) function_name = oneOf(valid_functions) function_call = Group(function_name + LPAR + argument + RPAR) 其中valid_argument和valid_function是分别包含有效参数名称和函数名称的字符串列表. 现

python-使用pyparsing解析嵌套结构

我正在尝试解析生物序列中位置的特定语法.这些职位可以采用以下形式: 12 -- a simple position in the sequence 12+34 -- a complex position as a base (12) and offset(+34) 12_56 -- a range, from 12 to 56 12+34_56-78 -- a range as a start to en

Pyparsing:嵌套的Markdown强调

我正在闲逛着一些简单的Markdown文本,可以一起学习和学习Pyparsing和语法.我几乎无法解决就遇到了一个问题.我正在尝试解析CommonMark规范的简单版本以进行强调.在此设置中,允许嵌套强调,因此 *foo *bar* baz* 应该给: <em>foo <em>bar</em> baz</em> 我尝试使用递归定义来匹配

Python / PyParsing:遇到setResultsName问题

我认为我在调用setResultsName()时犯了一个错误: from pyparsing import * DEPT_CODE = Regex(r'[A-Z]{2,}').setResultsName("Dept Code") COURSE_NUMBER = Regex(r'[0-9]{4}').setResultsName("Course Number") COURSE_NUMBER.setParseAction(

使用解析将**运算符更改为幂函数?

我的要求是将**运算符更改为幂函数 例如 1.Input -"B**2" Output - power(B,2) 2."B**2&&T**2*X" Output - power(B,2) 我写了以下正则表达式来解决这个问题 rx=r"([a-zA-Z0-9]+)\*\*([a-zA-Z0-9()]+)" result = regex.sub(rx, r"power(\1,\2)&quo

python-pyparsing,每个结果名称

我正在尝试使用pyparsing来构建一些not-quite-sql解析器(我没有from子句,没有任何联接,等等).我今天的工作一直基于pyparsing附带的simpleSQL.py示例脚本.我试图将“ GROUP BY”和“ ORDER BY”子句添加到解析器中,但是无论它们先出现在哪,都试图对其进行匹配. 我正在使用Each类,它

如何使用pyparsing验证布尔表达式语法?

我正在使用Pyparsing库来评估像这些简单的布尔查询: >(真和真)或假和真 >(真AND(真或假或真) 使用示例部分(simpleBool.py)中的simpleBool脚本,我在尝试验证表达式语法时遇到了麻烦.类似下面的表达式即使有明确的语法问题也被认为是有效的: >(真和真)或假和真或或>(真和(真或假或真))

python – 词典和pyparsing列表

我正在使用pyparsing来构建附加到列表的字典.当我这样做时,字典被包含在一个额外的列表中,并且还附加了一个空的字典.我不知道如何解决这个问题.我想要的是[{},{},{}].我得到[([{}],{})]为什么getDict的代码给了我想要的东西而不是getDictParse? #! /usr/bin/env python from pypar

python – 定义PyParsing字段名称的简写

我有几个pyparsing标记定义如下: field = Word(alphas + "_").setName("field") 真的没有这方面的简写吗? 此外,这似乎不起作用,expression.parseString()返回的字典总是空的.解决方法:你很困惑setName和setResultsName. setName为表达式指定一个名称,以便异常消息更有意义.相比: >

pyparsing以最常见的形式解析python函数调用

我想使用优秀的pyparsing包以最常见的形式解析python函数调用.我读了一篇有点有用的帖子here,但还不够通用. 我想解析以下表达式: f(arg1,arg2,arg3,...,kw1=var1,kw2=var2,kw3=var3,...) 哪里 > arg1,arg2,arg3 …是任何类型的有效python对象(整数,实数,列表,字典,函数,变量名…

python – 运算符的Pyparsing问题

我做了一个带有pyparsing的语法,我有一个问题. 语法试图解析搜索查询(使用运算符优先级,括号等),我需要空格像和运算符一样工作. 例如,这工作正常: (word and word) or word 但这失败了: (word word) or word 我希望第二个查询像第一个查询一样工作. 我的实际语法是: WWORD = pri

python – pyparsing删除一些文本以及如何使用空格捕获文本

我是使用pyparsing(python 2.7)的新手,并对此代码有几个问题: import pyparsing as pp openBrace = pp.Suppress(pp.Literal("{")) closeBrace = pp.Suppress(pp.Literal("}")) ident = pp.Word(pp.alphanums + "_" + ".") otherStuff = pp.Suppress

python – 麻烦在pyparsing中进行简单的解析

我使用pyparsing有一些基本问题.下面是测试程序和运行的输出. aaron-mac:sql aaron$more s.py from pyparsing import * n = Word(alphanums) a = Group( n | Group( n + OneOrMore( Suppress(",") + n ))) p = Group( a + Suppress(".") ) print a.parseString("first&q

解析Lisp输入到python的问题

我试图将lisp输入解析为python列表.但是当我解析输入时,我得到了字符串列表,但我希望将单个元素作为int. 示例:当我解析以下输入时:“(2(10(5 11)))(5 6)(4)” 输出:[[[‘2′],[’10’,’5′]],[[‘5’],[‘6’]],[[‘4’]]] 我使用:[[map(int,x)for x in lst] for lst in test]将字符

python – pyparsing OneOrMore嵌入在其他OneOrMore中

我试图第一次使用pyparsing. 我的解析器没有做我希望它会做的事情,有人可以检查一下,看看有什么问题.我试图在OneOrMore中嵌入OneOrMore,我认为应该可以正常工作,但事实并非如此. 以下是整个代码: import pyparsing status = """ sale number : 11/7 NAME