我正在尝试为一个可以包含''uu'的数字创建一个解析器。我希望输出中的下划线被抑制。例如,一个有效的单词应该是1000_000,它应该返回一个数字:1000000。 我尝试过excludeChars关键字参数,因为我的理解是,这应该做到以下几点:
"If supplied, this argument specifies characters not to be considered to match, even if those characters are otherwise considered to match."
摘自http://infohost.nmt.edu/tcc/help/pubs/pyparsing/pyparsing.pdf-第33页第5.35节(伟大的pyparsing参考btw)
下面是我的尝试:
import pyparsing as pp
num = pp.Word(pp.nums+'_', excludeChars='_')
num.parseString('123_4')
但结果是“123”而不是“1234”
^{pr2}$有什么建议吗?在
你误解了排他性的目的。它不是为了抑制输出中的那些字符,而是作为对初始字符串和正文字符串中给定字符的重写。所以这个
就和
^{pr2}$添加excludeChars是因为有很多次用户想要定义像:
在添加excludeChars之前,唯一的方法就是外观笨拙:
^{3}$或者
你现在可以写了
在您的例子中,您希望解析数值,允许嵌入''u’s,但只返回数字。这是一个分析操作的好例子:
解析操作在解析时被调用来进行过滤和转换。甚至可以将转换包含在操作中:
简单地替换下划线字符怎么样?在
相关问题 更多 >
编程相关推荐