正则表达式从html元素中提取属性

时间:2010-12-20 17:44:10

标签: html regex

来自溪流的文字:

<option value=\"1999\">1999</option>\r\n    \r\n \r\n\r\n  \r\n\r\
    n    
<option value=\"2000\">2000</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2001\">2001</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2002\">2002</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2003\">2003</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2004\">2004</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2005\">2005</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2006\">2006</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2007\">2007</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2008\">2008</option>\r\n    \r\n \r\n\r\n  \r\n\r\n    
<option value=\"2009\">2009</option>

正则表达式:(?si:<option value=\\\"(?<year>.*?)\\)这不应该是获得这一年的正确方法吗?只要你没有按下\ _ / p>,就可以获得所有字符

2 个答案:

答案 0 :(得分:0)

\<option\svalue\=\\\"(\d*)\\\"

这是普通的正则表达式。将其更改为您正在使用的语言

答案 1 :(得分:0)

这取决于您使用的语言,但请尝试<option\s+value=(\\\")?(\d+)(\\\")?>

这是在Python中工作的:

>>> re.findall("<option\s+value=(\\\")?(\d+)(\\\")?>", text)
['1999', '2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009']