[英]Python Regex String Extraction
我正在尝试使用正则表达式从此字符串中提取两个字符串-
'<img src="http://images.efollett.com/books/978/047/012/9780470129296.gif" width="80" height="100" alt="Organic Chemistry I (as Second Language)" />'
我想要src之后的URL和alt之后的文本(所以有机化学I(作为第二语言)和url)
我已经尝试过('<img src=(\\w+)" width')
, ('<img src="(\\w+)"')
和('src="(\\w+)"\\swidth')
url都返回空。
我也尝试过使用('alt="(\\w+)"')
作为名字,但再次没有运气。
有人可以帮忙吗?
使用lxml
。
import lxml.html
html_string = '<img src="http://images.efollett.com/books/978/047/012/9780470129296.gif" width="80" height="100" alt="Organic Chemistry I (as Second Language)" />'
img = lxml.html.fromstring(html_string)
print "src:", img.get("src")
print "alt:", img.get("alt")
给出 :
src: http://images.efollett.com/books/978/047/012/9780470129296.gif alt: Organic Chemistry I (as Second Language)
尽管您不应该使用正则表达式解析HTML ,但我可以在这里指出正则表达式的常见错误,即您使用\\w
。 仅匹配AZ,az,0-9和下划线。 不斜杠,也不括号。 如果您尝试从属性中提取数据,请使用"([^"]*)"
或"(.*?)"
您可以尝试r'<img[^>]*\\ssrc="(.*?)"'
和r'<img[^>]*\\salt="(.*?)"'
。
我不知道您是否正在处理HTML。 [^>]*
是为了确保在方括号内。 \\s
用于避免使用某些标签,例如“ xxxsrc”,并注意换行符。
我不懂python,但是这个正则表达式有帮助吗?
<img.*?src="([^"]*)".*?alt="([^"]*)".*?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.