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

标签 java regex string url extract

我正在尝试提取“/”和“.”之间的字符串的一个网址。例如,我有一个像“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/

相关文章:

java - JPA 与 Hibernate - 对象 'get' 方法返回一对一关系的不同版本

java - 如何将从 sha1 字节数组生成的字符串返回到该字节数组?

java - 打印输入 Java 的最后几行

c# - 转义 C# 字符串中的双引号

javascript - 如何使用正则表达式在指定字母(即A、D、F、R)和数字之间插入括号?

java - 设置JPanel的大小

java - 如果我想要一个 0 来结束程序,我应该把程序放在哪里?

Java Swing GUI - 问题

regex - 如何在 Notepad++ 中删除两个字符或字符串之间的空格

ruby - cucumber 测试的步骤定义应该能够处理 "a"和 "an"[正则表达式相关]