Java 从大段落中提取字符串

Java 从大段落中提取字符串,java,regex,Java,Regex,我想提取符合模式的字符串 如果输入是这样的 https://www.facebook.com/tajmahal&sa=U& 输出 如果输入是这样的 https://www.facebook.com/tajmahal+泰姬陵+玛哈陵+facebook&tbo=1& 输出 也就是说,我只想让字符串删除不必要的字符串 Pattern p = Pattern.compile("<a href=\"https://www.facebook.com/[^>]*>([^

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

如果输入是这样的

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

输出

如果输入是这样的

https://www.facebook.com/tajmahal+泰姬陵+玛哈陵+facebook&tbo=1&

输出

也就是说,我只想让字符串删除不必要的字符串

  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); 
Pattern p=Pattern.compile(看起来像

https://www\.facebook\.com/[^&+]+
/
之后,您需要的字符不是
&
+

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

为此,您可能需要研究“角色类”是如何工作的。

尝试以下方法:

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

你尝试了什么?给我们展示一些努力。你忘了展示你已经尝试过的东西