class ParserElement
# 设置分隔符,默认是' \r\t\n'
def setDefaultWhitespaceChars( chars )
# 静态方法,设置输入字符串该封装为何种对象,默认是Literal
def inlineLiteralsUsing(cls)
# 复制一个对象,并且parseAction、ignoreExprs、DEFAULT_WHITE_CHARS进行复制
def copy( self )
# 设置调试时候显示的名字
def setName( self, name )
# 设置输入结果的名字,这样匹配的结果就可以当成字典来使用
# 此方法是进行基础的对象进行copy,然后设置名字
# 顾基础对象还可以被设置其他的名字
# 如果名字最后一个字符为‘*’,或listAllMatches设置为True
# 那么当这个匹配被嵌套进一个例如OneMore这样的多匹配中,可以返回所有匹配到的内容
def setResultsName( self, name, listAllMatches=False )
# 设置匹配成功后调用的回调函数,回调函数的参考个数为0-3之间
# fn(s,loc,toks), fn(loc,toks), fn(toks), fn()
# s:输入的匹配串,loc:当前的偏移量,toks:当前匹配到的内容
# 如果项通过函数修改匹配内容,那么需求返回一个结果,否则就不用返回
# 输入可以是一个回调函数,或包含多个回调函数的list
def setParseAction( self, *fns, **kwargs )
# 类似于setParseAction,可以在后续不断的增加回调函数
def addParseAction( self, *fns, **kwargs )
# 当匹配失败时设置调用一个回调函数,fn(s,loc,expr,err)
# s:匹配的串,loc:当前偏移量,expr:匹配的表达式,err:异常对象
def setFailAction( self, fn )
# 此方法不用被外部调用,
# 主要功能为在进行匹配之前做两个事情:
# 1、跳过ignoreExprs(此通过ignore方法设置)
# 2、跳过空白字符
def preParse( self, instring, loc )
# 静态方法,将之前匹配过的信息缓存下来,后续不用重复匹配
def enablePackrat()
# 具体实施解析的函数
#parseAll为True相当于expr加上StringEnd()
def parseString( self, instring, parseAll=False )
# +:And
def __add__(self, other )
# '- ',像诸如scanString这种循环扫描的方法,
# 如果使用-号连接时,那么一旦不匹配就立即报错而不是继续的匹配
def __sub__(self, other)
# expr * 3 == expr + expr + expr
# expr*(n,None) == expr*(n,) == expr*n + ZeroOrMore(expr)
# expr*(None,n) == expr*(0,n)
# expr*(None,None) == ZeroOrMore(expr)
# expr*(1,None) == OneOrMore(expr)
def __mul__(self,other)
# '|' MatchFirst
def __or__(self, other )
# '^' Or
def __xor__(self, other )
# '&' 与
def __and__(self, other )
# '~'非判断,不占用偏移量
def __invert__( self )
# setResultsName的快捷方式
def __call__(self, name=None)
# 同Suppress
def suppress( self )
# 不进行Whitespace的自动跳跃
def leaveWhitespace( self )
# 设置Whitespace字符,默认为' \r\n\t'
def setWhitespaceChars( self, chars )
# 不将tab转换为空格
def parseWithTabs( self )
# 忽略匹配的expr
def ignore( self, other )
# 设置为调试模式
def setDebug( self, flag=True )
# 对文件进行解析,内部用parseString调用read
def parseFile( self, file_or_filename, parseAll=False )