gpt4 book ai didi

java - 从 URL 中提取部分字符串 - Java Regex

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:05 24 4
gpt4 key购买 nike

我正在尝试提取“/”和“.”之间的字符串的一个网址。例如,我有一个像“some.com/part1/part2/part3/stringINeed.xyz”这样的 URL。我需要从上面的 URL 中提取“stringINeed”,即最后一个“/”和“.”之间的那个。没有其他的。

到目前为止,我尝试了以下操作,但输出为空:

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

class Extract
{
public static void main (String[] args) throws java.lang.Exception
{
String str = "part1/part2/part3/stringINeed.xyz" ;
Pattern pattern = Pattern.compile("/(.*?).");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
}
}

我的代码有什么问题。谁能帮忙?

最佳答案

使用这个正则表达式:

[^/.]+(?=\.[^.]+$)

参见 demo .

在 Java 中:

Pattern regex = Pattern.compile("[^/.]+(?=\\.[^.]+$)");
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find()) {
ResultString = regexMatcher.group();
}

解释

  • [^/.]+ 匹配任何不是斜杠或点的字符
  • 先行 (?=\.[^.]+) 断言后面是一个点,后跟非点和字符串的结尾

关于java - 从 URL 中提取部分字符串 - Java Regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24541500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com