【问题标题】:Matching a string to a regex from html input将字符串与来自 html 输入的正则表达式匹配
【发布时间】:2012-07-27 17:18:47
【问题描述】:

我有点不知道该怎么做。

基本上使用java我正在尝试:

  • 从网站读取 html
  • 我想在这种情况下找到某个字符串之后的内容

     title="
    
  • 将其存储在字符串中。

第一步和最后一步对我来说很简单,但我没有运气(而且从来没有使用过正则表达式)。

我相信这是我需要的开始:

   String regex = "(?<=title=\")\\S+";
   Pattern name = Pattern.compile(regex);

之后我就不知道了。有什么帮助吗?

【问题讨论】:

  • 改用jsoup。 (我们又来了……)
  • 我建议为此使用一些库(您甚至会获得 XPath 支持):HttpUnitJSoupNekoHtml

标签: java regex


【解决方案1】:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

String EXAMPLE_TEST = "......";
Pattern pattern = Pattern.compile("(?<=title=\")(\\S+)")
Matcher matcher = pattern.matcher(EXAMPLE_TEST);
while (matcher.find()) {
  System.out.println(matcher.group());
}

注意:您可以考虑使用正则表达式模式(?&lt;=title=\")([^\"]*)

【讨论】:

  • 我们想要整个标题还是直到第一个空格?
  • @maerics - 我相信 OP 没有要求更改正则表达式模式,但(s)他希望帮助其余代码以匹配变量,或者......
【解决方案2】:
List<String> result_list = new ArrayList<String>();
Pattern p = Pattern.compile("title=\"(.*)\"");
Matcher m = p.matcher("title=\"test\"");
boolean result = m.find();

while(result)
{
    result_list.add(m.group(0));
    result = m.find();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2013-10-18
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多