从大段中提取字符串

时间:2014-05-05 06:34:54

标签: java regex

我想提取符合模式的字符串

如果输入是这样的

https://www.facebook.com/tajmahal&sa=U&

输出

https://www.facebook.com/tajmahal

如果输入是这样的

https://www.facebook.com/tajmahal+taj+mahal+facebook&tbo=1&

输出

https://www.facebook.com/tajmahal

那就是我只想让字符串删除不必要的字符串。

  Pattern p = Pattern.compile("<a href=\"https://www.facebook.com/[^>]*>([^<]+)</a>");
  Matcher m = p.matcher(str);
  String pageid = "";

  while (m.find())
  {
      Pattern p1 = Pattern.compile("href=\"https://www.facebook.com/(.*?)\"");
      Matcher m1 = p1.matcher(m.group(0));
      String url = null;
      if (m1.find())
      {
          url = m1.group(1); 

2 个答案:

答案 0 :(得分:1)

看起来像

https://www\.facebook\.com/[^&+]+

/后你想要的字符不是&+

也许您对输入中的“分隔符”有其他要求,如果是这样,请将它们添加到[^&+]

要做到这一点,你可能想要研究“角色类”是如何工作的。

答案 1 :(得分:0)

试试这个:

String str = input.replaceAll("^([^&+]+).*", "$1");