我需要在文档HTML中提取图像中的所有链接。 实际上我可以使用这个RegExp提取href属性值:
private static final String HTML_A_HREF_TAG_PATTERN =
"\\s*(?i)href\\s*=\\s*(\"([^\"]*\")|'[^']*'|([^'\">\\s]+))";
我只需要获取图像的链接,所以我必须检查,如果字符串与图像扩展名匹配(jpg,jpeg,png,gif)。
如何修改模式?
答案 0 :(得分:1)
免责声明 - 使用正则表达式解析html 不推荐!
尽管不完美,但这可能有效。该链接位于捕获组2中。
# "(?si)<[\\w:]+(?=(?:[^>\"']|\"[^\"]*\"|'[^']*')*?(?<=\\s)href\\s*=\\s*(?:(['\"])\\s*((?:(?!\\1).)*?\\.(?:jpg|png|jpeg|gif))\\s*\\1))\\s+(?:\".*?\"|'.*?'|[^>]*?)+>"
(?si)
< [\w:]+
(?=
(?: [^>"'] | " [^"]* " | ' [^']* ' )*?
(?<= \s )
href \s* = \s*
(?:
( ['"] ) # (1)
\s*
( # (2 start)
(?:
(?! \1 )
.
)*?
\.
(?: jpg | png | jpeg | gif )
) # (2 end)
\s*
\1
)
)
\s+
(?: " .*? " | ' .*? ' | [^>]*? )+
>