我正在寻找一个正则表达式,可以从java中的以下HTML片段中获取src(不区分大小写)标记.
<html><img src="kk.gif" alt="text"/></html>
<html><img src='kk.gif' alt="text"/></html>
<html><img src = "kk.gif" alt="text"/></html>
Run Code Online (Sandbox Code Playgroud)
DMI*_*DMI 24
一种可能性:
String imgRegex = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>";
Run Code Online (Sandbox Code Playgroud)
是一种可能性(如果匹配不区分大小写).这有点乱,故意忽略不使用引号的情况.要表示它而不必担心字符串转义:
<img[^>]+src\s*=\s*['"]([^'"]+)['"][^>]*>
Run Code Online (Sandbox Code Playgroud)
匹配:
<img>(即可能的其他属性)src='或">(更多可能的属性)> 关闭标签注意事项:
src=,请将左侧的开放式支架向左移动:-)>包括或图像源'或").cle*_*tus 17
这个问题在这里出现了很多.
正则表达式是处理此问题的一种不好的方法.帮自己一个忙,并使用某种HTML解析器.
正则表达式用于解析HTML.你最终会得到一个复杂的表达式,在某些特殊情况下会出现意外行为.
编辑: 如果您的HTML很简单,那么:
Pattern p = Pattern.compile("src\\s*=\\s*([\\"'])?([^ \\"']*)");
Matcher m = p.matcher(str);
if (m.find()) {
String src = m.group(2);
}
Run Code Online (Sandbox Code Playgroud)
并且有许多Java HTML解析器.
| 归档时间: |
|
| 查看次数: |
33846 次 |
| 最近记录: |