Python正则表达式映射值

2024-05-14 20:46:29 发布

您现在位置: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正则表达式进行提取的最佳方法是什么 所有名称和所有值? 我在考虑获取一个名为['rsv.usePoint','rsv.yadRequestFlg','rsv.ybnNo',…'rsv.stayTime'的列表
值=[0,0,'100-0000'……无]。
将它们压缩成dict并推送到数据库
我不熟悉正则表达式匹配和修剪,如果有人能提供一些见解,我将不胜感激


Tags: nameinputvaluetypehiddenrsvcheckouttimeusepoint
1条回答
网友
1楼 · 发布于 2024-05-14 20:46:29

通常,您应该而不是使用正则表达式来解析任何类型的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', '']

相关问题 更多 >

    热门问题