【问题标题】:Extract certain string from other string从其他字符串中提取某个字符串
【发布时间】:2018-04-18 05:23:38
【问题描述】:

我自己做了一个项目,我需要提取某个 URL 字符串。 在我使用之前

Arrays.asList(URL.split("/")).get(6);

但只有在 6 号 / 之后,我才能得到它。 我知道 ma​​tcher() 有一些东西,但我没有让它工作。

例如:

https://www.amazon.de/gp/product/SOMETEXTHERE/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

我想提取出 SOMETEXTHERE。但是这个角色正在改变,所以我不能说它总是一样的。 我需要 SOMETEXT 然后在一个单独的字符串中。

【问题讨论】:

  • 在使用 matcher 之前必须定义规则。
  • @AniketSahrawat 但我要求替换文本...
  • @MrMinemeet 我撤回了接近投票。

标签: java regex string extract matcher


【解决方案1】:

使用group(1) 检索product//ref 之间的文本:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile(".*product/(.*)/ref.*");
        Matcher matcher = pattern.matcher("https://www.amazon.de/gp/product/SOMETEXTHERE/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1");
        if (matcher.matches()) {
            System.out.println(matcher.group(1));
        }
    }
}

【讨论】:

  • 我认为(?<=/product/)[^/]+ 会更好。用matcher.find() 代替matcher.matches()Syso(matcher.group(0))
猜你喜欢
  • 2018-08-21
  • 1970-01-01
  • 2019-07-08
  • 1970-01-01
  • 2021-12-21
  • 2014-01-24
  • 1970-01-01
相关资源
最近更新 更多