Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用动态日期获取URL中的文本-Regex Java_Java_Regex_String - Fatal编程技术网

使用动态日期获取URL中的文本-Regex Java

使用动态日期获取URL中的文本-Regex Java,java,regex,string,Java,Regex,String,我需要获取URL之间的文本,该URL在Java中有日期 投入1: 输出:testcustomer 只有/原始/剩余,日期将更改,testcustomer将更改 投入2: 输出:新客户 它返回“default”:您的正则表达式/raw/\\d{4}-\\d{2}-\\d{2}/usr*缺少所需值的部分,您需要一个正则表达式来查找日期,并保留下一步内容: /\w*/raw/[0-9-]+/\w++/.*或?您的正则表达式/raw/\\d{4}-\\d{2}-\\d{2}/usr*缺少所需值的部分,您

我需要获取URL之间的文本,该URL在Java中有日期

投入1:

输出:testcustomer

只有/原始/剩余,日期将更改,testcustomer将更改

投入2:

输出:新客户

它返回“default”:

您的正则表达式/raw/\\d{4}-\\d{2}-\\d{2}/usr*缺少所需值的部分,您需要一个正则表达式来查找日期,并保留下一步内容:

/\w*/raw/[0-9-]+/\w++/.*或?您的正则表达式/raw/\\d{4}-\\d{2}-\\d{2}/usr*缺少所需值的部分,您需要一个正则表达式来查找日期,并保留下一步内容:

/\w*/raw/[0-9-]+/\w++/.*或?在这里,我们可能使用raw后跟日期作为左边界,然后我们将在捕获组中收集所需的输出,我们将添加一个斜杠并使用字符串的其余部分,表达式类似于:

.+raw\/[0-9]{4}-[0-9]{2}-[0-9]{2}\/(.+?)\/.+
测验 正则表达式 如果不需要此表达式或您希望修改它,请访问

正则表达式电路 可视化正则表达式:

在这里,我们可以使用raw后跟日期作为左边界,然后在捕获组中收集所需的输出,添加斜杠并使用字符串的其余部分,表达式类似于:

.+raw\/[0-9]{4}-[0-9]{2}-[0-9]{2}\/(.+?)\/.+
测验 正则表达式 如果不需要此表达式或您希望修改它,请访问

正则表达式电路 可视化正则表达式:


你试过什么吗?是的,让我补充一下it@V下一次,当你第一次写代码的时候,考虑添加代码时,由于没有投票权,它会很快得到否决票;你试过什么吗?是的,让我补充一下it@V下一次,当你第一次写代码的时候,考虑添加代码时,由于没有投票权,它会很快得到否决票;
String url = "/test3/raw/2018-09-01/newcustomer/usr/pqr/DATA/mn/export/";
String customer = getCustomer(url);
public String getCustomer (String _url){
    String source = "default";
    String regex = basePath + "/raw/\\d{4}-\\d{2}-\\d{2}/usr*";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(_url);
    if (m.find()) {
        source = m.group(1);
    } else {
        logger.error("Cant get customer with regex " + regex);
    }
    return source;
}
Pattern p = Pattern.compile("/\\w*/raw/[0-9-]+/(\\w+)/.*");
Matcher m = p.matcher(str);
if (m.find()) {
    String value = m.group(1);
    System.out.println(value);
}
String value = str.split("/")[4];
System.out.println(value);
.+raw\/[0-9]{4}-[0-9]{2}-[0-9]{2}\/(.+?)\/.+
import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = ".+raw\\/[0-9]{4}-[0-9]{2}-[0-9]{2}\\/(.+?)\\/.+";
final String string = "/test1/raw/2019-06-11/testcustomer/usr/pqr/DATA/mn/export/\n"
     + "/test3/raw/2018-09-01/newcustomer/usr/pqr/DATA/mn/export/";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
    for (int i = 1; i <= matcher.groupCount(); i++) {
        System.out.println("Group " + i + ": " + matcher.group(i));
    }
}