【发布时间】:2020-01-09 14:20:14
【问题描述】:
我目前正在编写一个自定义文件解析系统来将特定的 Txt 文件转换为有效的 JSON,但我在提取字符“x”和“y”时遇到了一些困难
我有这些 txt 文件可能包含的所有可能变量的列表。
#Loops through lists to match words and change the paras to be JSON compliant
for x in linedefParas :
string = "\"%s\"" % x
data = data.replace(x, string)
for y in sidedefParas :
string = "\"%s\"" % y
data = data.replace(y, string)
for z in vertexParas :
string = "\"%s\"" % z
data = data.replace(z, string)
这可以正常工作,但 vertexParas 包含字符串“x”和“y”,这是一个问题,因为 x 和 y 被在单词中以及其自身中提取。
{
x = 880.0;
y = 1288.0;
SECxDis = 90;
}
它不会只在 "x" 和 "y" 周围加上双引号,而是像这样用完整的单词来做
{
"x" = 880.0;
"y" = 1288.0
"SEC"x"Dis" = 90;
}
我希望从此代码中得到的结果如下所示:
{
"x" = 880.0;
"y" = 1288.0;
"SECxDis" = 90;
}
我想要的只是 他们自己 用双引号括起来的“x”和“y”字符串。不是字符串其他部分的字母。
谢谢,奥利
【问题讨论】:
-
将您的正则表达式更改为类似 \sx\s 示例:regex101.com/r/J50xBy/2 tl;dr:只选择前后有空格的 x 和 y-s
-
变量和函数名一般应遵循
lower_case_with_underscores风格。
标签: python string list character