我希望能够使用 python 正则表达式捕获 HTML 属性的值。目前我使用
re.compile( r'=(["\'].*?["\'])', re.IGNORECASE | re.DOTALL )
我的问题是我希望正则表达式“记住”属性是以单引号还是双引号开头。
我在当前方法中发现了具有以下属性的错误
href="javascript:foo('bar')"
我的正则表达式捕获
"javascript:foo('
以下在理论上会更有效:
regex = r'"[^"]*"|\'[^']*\''
作为参考,这里是 Jeffrey Friedl 的html 标签表达式(来自 owl book):
< # Opening "<"
( # Any amount of . . .
"[^"]*" # double-quoted string,
| # or . . .
'[^']*' # single-quoted string,
| # or . . .
[^'">] # "other stuff"
)* #
> # Closing ">"