Python 如何使用PyParsing';什么是引用字符串?
我试图解析一个包含多个带引号的值的字符串。以下是我到目前为止的情况:Python 如何使用PyParsing';什么是引用字符串?,python,pyparsing,Python,Pyparsing,我试图解析一个包含多个带引号的值的字符串。以下是我到目前为止的情况: 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_na
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
;特别是,它们的构造函数似乎不接受可打印的内容
如何删除单引号?将表达式替换为以下内容:
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
不带引号。将表达式替换为以下内容:
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
不带引号。Yes,QuotedString
的构造函数将字符用作开头和结尾分隔符,而不是字符串的内容。Yes,QuotedString
的构造函数将字符用作开头和结尾分隔符,而不是字符串的内容。