Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式映射值_Python_Regex - Fatal编程技术网

Python正则表达式映射值

Python正则表达式映射值,python,regex,Python,Regex,使用python正则表达式进行提取的最佳方法是什么 所有名称和所有值? 我正在考虑获取一个名称的列表=['rsv.usePoint','rsv.yadRequestFlg','rsv.ybnNo',…'rsv.stayTime'] 值=[0,0,'100-0000'……无]。 将它们压缩成dict并推送到数据库我不熟悉正则表达式匹配和修剪,如果有人能提供一些见解,我将不胜感激。一般来说,您不应该使用正则表达式解析任何类型的HTML,它们可以是嵌套内容。也就是说,如果您的输入仅限于您上面发布的内容

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

一般来说,您不应该使用正则表达式解析任何类型的HTML,它们可以是嵌套内容。也就是说,如果您的输入仅限于您上面发布的内容,那么
re.findall
可以处理此任务:

<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="">

谢谢你,蒂姆,工作得很有魅力,我要读一下re。findall@Lenny_Liu我刚刚注意到,您似乎实际上希望为名称和值创建单独的列表。我已经更新了我的答案来做这件事。实际上,你提供的旧解决方案更好。对不起,把你弄糊涂了,这就是我想要的结果。matches=re.findall(r'\bname=“(.*?”)value=“(.*?”,inp)没有问题…然后在我的答案中使用上面的
匹配项,它已经是您想要的格式的2D列表。
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', '']