【问题标题】:Extract src image field from a simple html string without a parser从没有解析器的简单 html 字符串中提取 src 图像字段
【发布时间】:2012-10-05 08:41:33
【问题描述】:

我有这样的 html 字符串:

<img src="mysrc" width="128" height="92" border="0" alt="alt" /><p><strong>...

我想提取 mysrc。我不想使用 html 解析器,因为我只需要处理简单的 html 字符串...有没有一种仅使用字符串/正则表达式来提取源字段的有效方法?或者也许使用 android 默认的 xml 解析器?

【问题讨论】:

  • 你有没有尝试过?
  • 有些东西,但到目前为止还没有有效的想法..

标签: java android regex


【解决方案1】:

你可以试试正则表达式:"(?&lt;=&lt;img src=\")[^\"]*"

示例:

@Test
    public void testX() {
        final String s = "<img src=\"mysrc\" width=\"128\" height=\"92\"...";
        final String regex = "(?<=<img src=\")[^\"]*";
        final Pattern p = Pattern.compile(regex);
        final Matcher m = p.matcher(s);
        while (m.find()) {
            System.out.println(m.group());
        }

    }

会给你

mysrc

【讨论】:

  • 你的输入字符串改变了吗?
  • 一点也不! source" width="128" height="92" border="0" alt="alt" title="title" />

    blabla ...

  • 尝试使用上面的新文本,这里给出了正确的文本:source
  • omg.... 这是我的主要内容,它给了我“找不到匹配项”: public static void main(String[] args){ String body = "

    blabla";最终模式 p = Pattern.compile("(?

  • 好的,它可以工作...我没有在匹配器上调用 find() !听着,为了提高效率,是否可以在找到第一个出现时停止?
【解决方案2】:

你可以做一些类似的事情

String text = "<img src=\"mysrc\" width=\"128\" height=\"92\" border=\"0\" alt=\"alt\" /><p><strong>";

text = text.substring(text.indexOf("src=\""));
text = text.substring("src=\"".length());
text = text.substring(0, text.indexOf("\""));
System.out.println(text);

有效,可能,有效,可能没那么多

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签