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

时间:2014-07-02 21:42:07

标签: java regex string url extract

我试图在' /'之间提取字符串。和'。'一个URL。例如,我有一个类似" some.com/part1/part2/part3/stringINeed.xyz"的网址。我需要提取" 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));
        }
    }
}

我的代码出了什么问题。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

使用此正则表达式:

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

demo

在Java中:

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

<强>解释

  • [^/.]+匹配任何不是斜线或点
  • 的字符
  • 前瞻(?=\.[^.]+)断言接下来是一个点,后跟非点和字符串的结尾

答案 1 :(得分:1)

没有正则表达式

str.substring(str.lastIndexOf("/"), str.lastIndexOf(".")).replaceAll("/", "");