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

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


但只有在第六个/之后,我才能得到它。
我知道matcher()有问题,但是我无法正常工作。

例如:

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


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

最佳答案

使用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));
        }
    }
}

关于java - 从其他字符串中提取某些字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49891745/

10-12 22:35