我发现使用python 字符串split()函数来处理这种事情很容易。
编辑:重大更新以处理新要求
很简单的东西:
html = """
<script>
var id = \"5010\";
var id2 = \"8888\";
var idX = \"XoX\";
</script>"""
varlist = {}
vars = html.split("var ")[1:] # get each var entry
for v in vars:
name = v.split("=")[0].strip() # first part is the var [name = "]
value = v.split("\"")[1] # second part is the value [ = "..."]
varlist[name] = value # store it for printing below
print("Varlist - " + str(varlist))
---------------------
OUTPUT: Varlist - {'id': '5010', 'id2': '8888', 'idX': 'XoX'}
split()
返回一个字符串列表,该字符串在搜索的部分周围分开。 第二个参数表示最大分割数。 因此,通过分割字符串,将其限制为一个分割,然后采用[0]
或[1]
元素,可以将输入分开以获取所需的数据。
在上面,第一个拆分在var
。 这给出了一个列表,因为字符串在有var
位置被分割,所以每个条目的第一部分是var名称(我们从一开始就丢弃了垃圾)。
然后,代码针对这些拆分中的每一个进行循环,通过在=
上拆分来获取var名称,得到[0]
端。 接下来是var值,该值始终包含在引号中,因此在"
分割时应给出一个3个项目的列表, [1]
元素是var的值。将这些值添加到python字典中只是为了例。
如果您的值不总是用引号引起来,则可以在;
上将其分开;
等等。可以使用任何类型的保证模式。