Python正则表达式映射值


<input type="hidden" name="rsv.usePoint" value="0">
<input type="hidden" name="rsv.yadRequestFlg" value="0">
<input type="hidden" name="rsv.ybnNo" value="100-0000">
<input type="hidden" name="rsv.cardSettleFlg" value="0">
<input type="hidden" name="rsv.cancelFee" value="0">
<input type="hidden" name="rsv.checkoutTime" value="10:00">
<input type="hidden" name="rsv.realUsePoint" value="0">
<input type="hidden" name="rsv.payReal" value="7020">
<input type="hidden" name="rsv.csBulkSettleFlg" value="0">
<input type="hidden" name="rsv.canType" value="0">
<input type="hidden" name="rsv.serviceDv" value="00">
<input type="hidden" name="rsv.stayTime" value="">

使用python-regex提取的最佳方法是什么所有名称和所有值?我想得到一个
名称列表=[rsv.usePoint','rsv.yadRequestFlg','rssv.ybNo',…'rsv.stayTime']
values=[0,0,'100-0000'……none]。
将它们压缩到dict中并推送到数据库中
我是regex匹配和修剪的新手,如果有人能提供一些见解,我将不胜感激。

通常,您不应该使用regex来解析任何类型的HTML,这些HTML可以是嵌套内容。也就是说,如果你的输入真的局限于你上面发布的内容,那么re.findall可以处理这个任务:

inp = """<input type="hidden" name="rsv.usePoint" value="0">
<input type="hidden" name="rsv.yadRequestFlg" value="0">
<input type="hidden" name="rsv.ybnNo" value="100-0000">
<input type="hidden" name="rsv.cardSettleFlg" value="0">
<input type="hidden" name="rsv.cancelFee" value="0">
<input type="hidden" name="rsv.checkoutTime" value="10:00">
<input type="hidden" name="rsv.realUsePoint" value="0">
<input type="hidden" name="rsv.payReal" value="7020">
<input type="hidden" name="rsv.csBulkSettleFlg" value="0">
<input type="hidden" name="rsv.canType" value="0">
<input type="hidden" name="rsv.serviceDv" value="00">
<input type="hidden" name="rsv.stayTime" value="">"""
matches = re.findall(r'bname="(.*?)" value="(.*?)"', inp)
names =  [i[0] for i in matches]
values =  [i[1] for i in matches]
print(names)
print(values)

此打印:

['rsv.usePoint', 'rsv.yadRequestFlg', 'rsv.ybnNo', 'rsv.cardSettleFlg', 'rsv.cancelFee',
'rsv.checkoutTime', 'rsv.realUsePoint', 'rsv.payReal', 'rsv.csBulkSettleFlg',
'rsv.canType', 'rsv.serviceDv', 'rsv.stayTime']
['0', '0', '100-0000', '0', '0', '10:00', '0', '7020', '0', '0', '00', '']

最新更新