diff --git a/wikitextparser/_spans.py b/wikitextparser/_spans.py index 4a3d392..f608174 100644 --- a/wikitextparser/_spans.py +++ b/wikitextparser/_spans.py @@ -151,8 +151,8 @@ # https://www.w3.org/TR/html5/syntax.html#syntax-attributes ATTR_NAME = rb'(?[^' + SPACE_CHARS + CONTROL_CHARS + rb'"\'>/=]++)' EQ_WS = rb'[=\1][' + SPACE_CHARS + rb']*+' -UNQUOTED_ATTR_VAL = rb'(?[^' + SPACE_CHARS + rb'"\'=<>`]++)' -QUOTED_ATTR_VAL = rb'(?[\'"])(?.*?)(?P=quote)' +UNQUOTED_ATTR_VAL = rb'[\'"]?(?[^' + SPACE_CHARS + rb'"\'=<>`/]++)' +QUOTED_ATTR_VAL = rb'(?[\'"])(?[^"\'<>]*?)(?P=quote)' # May include character references, but for now, ignore the fact that they # cannot contain an ambiguous ampersand. ATTR_VAL = ( @@ -164,9 +164,9 @@ + rb']*+' + EQ_WS + rb'(?>' - + UNQUOTED_ATTR_VAL - + rb'|' + QUOTED_ATTR_VAL + + rb'|' + + UNQUOTED_ATTR_VAL + rb')' + rb'|(?)' # empty attribute + rb')'