我正在尝试解析包含多个引用值的字符串。以下是我到目前为止的情况:
from pyparsing import Word, Literal, printables
package_line = "package: name='com.sec.android.app.camera.shootingmode.dual' versionCode='6' versionName='1.003' platformBuildVersionName='5.0.1-1624448'"
package_name = Word(printables)("name")
versionCode = Word(printables)("versionCode")
versionName = Word(printables)("versionName")
platformBuildVersionName = Word(printables)("platformBuildVersionName")
expression = Literal("package:") + "name=" + package_name + "versionCode=" + versionCode \
+ "versionName=" + versionName + "platformBuildVersionName=" + platformBuildVersionName
tokens = expression.parseString(package_line)
print tokens['name']
print tokens['versionCode']
print tokens['versionName']
print tokens['platformBuildVersionName']
打印
'com.sec.android.app.camera.shootingmode.dual'
'6'
'1.003'
'5.0.1-1624448'
请注意,所有提取的标记都包含在单引号内。我想删除这些,似乎QuotedString
对象就是为了这个目的。但是,我很难调整此代码段以使用QuotedStrings
;特别是,他们的构造函数似乎没有printables
。
我怎样才能删除单引号?
答案 0 :(得分:0)
用以下内容替换表达式:
package_name = QuotedString(quoteChar="'")("name")
versionCode = QuotedString(quoteChar="'")("versionCode")
versionName = QuotedString(quoteChar="'")("versionName")
platformBuildVersionName = QuotedString(quoteChar="'")("platformBuildVersionName")
似乎有效。现在脚本打印输出
com.sec.android.app.camera.shootingmode.dual
6
1.003
5.0.1-1624448
没有引号。