我正在使用以下代码:
downloadlink = re.findall("http://uploadir.com/u/(.*)\b", str(downloadhtml))
但是,当我传递以下字符串时:
<input type="text" value="http://uploadir.com/u/bb41c5b3" />
当我期待它找到时,它什么也没找到:http://uploadir.com/u/bb41c5b3
。我究竟做错了什么?
我已经使用测试了正则表达式http://gskinner.com/RegExr/这似乎是正确的。我在这里错过了什么吗?
养成使用原始字符串制作所有正则表达式模式的习惯:
In [16]: re.findall("http://uploadir.com/u/(.*)\b", '<input type="text" value="http://uploadir.com/u/bb41c5b3" />')
Out[16]: []
In [17]: re.findall(r"http://uploadir.com/u/(.*)\b", '<input type="text" value="http://uploadir.com/u/bb41c5b3" />')
Out[17]: ['bb41c5b3']
差异是由于\b
being 解释不同:
In [18]: '\b'
Out[18]: '\x08'
In [19]: r'\b'
Out[19]: '\\b'
'\b'
是 ASCII 退格键,而r'\b'
是由两个字符(反斜杠和 b)组成的字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)