【发布时间】:2017-10-16 14:27:28
【问题描述】:
我有下面的字符串,我可以获取我想要的'text'(文本在模式之间扭曲)。代码如下,
val1 = '[{"vmdId":"Text1","vmdVersion":"text2","vmId":"text3"},{"vmId":"text4","vmVersion":"text5","vmId":"text6"}]'
temp = val1.split(',')
list_len = len(temp)
for i in range(0, list_len):
var = temp[i]
found = re.findall(r':"([^(]*)\"\;', var)
print ''.join(found)
我想用用户提供的新值/或从另一个 XML 读取来替换值(Text1、text2、tex3 等)。 (Text1, tex2 .. 是完全随机的字母数字数据。下面是一些细节
Text1 = somename
text2 = alphanumatic value
text3 = somename
Text4 = somename
text5 = alphanumatic value
text6 = somename
anstring =
[{"vmdId":"newText1","vmdVersion":"newtext2","vmId":"newtext3"},{"vmId":"newtext4","vmVersion":"newtext5","vmId":"newtext6"}]
我决定使用replace(),但后来意识到数据不是恒定的。因此再次寻求帮助。感谢您的回复。
任何帮助将不胜感激。另外,如果让我知道我是否可以改进我现在获取价值的方式,因为我是正则表达式的新手。
【问题讨论】:
-
anstring是预期结果 -
所以它就像 JSON,带有键值的对象数组,您尝试替换值。我说的对吗?
-
字符串 text1,text2,text3 等你以前知道吗?或者它只是基于它们放置位置的这种模式?如果它们是已知的,那么只需创建一个字典并将这些值映射到 newText 将被替换并替换为所有使用
.replace()如果值已知,您甚至可能不需要在这里 -
@MykolaShchetinin:是的,它是键值对,我正在尝试替换值。
-
@MohitC :我从 XML 中读取了这个字符串。我必须用可用的新值(来自用户输入(YML)或另一个 XML)更新 Text1、text2、tex3,一旦更新字符串,我需要将此字符串写回原始 XML
标签: python regex string python-2.7