Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Java 从URL中提取部分正则表达式_Java_Regex_Jmeter - Fatal编程技术网

Java 从URL中提取部分正则表达式

Java 从URL中提取部分正则表达式,java,regex,jmeter,Java,Regex,Jmeter,我问了一个问题,非常感谢你的帮助。 我有一个这样的URL /您好/World/special/Case/2016/07/01/offer-015155.html 我只需要“2016/07/01/offer-015155”这个部分,每次都会动态更改。你能帮忙吗 我尝试了“(.*?”,“\d{4}/\d\d/\d\d/offer-\d+”,但没有帮助 当我运行时,它会显示“未找到”:(你可以考虑使用积极的前瞻和积极的前瞻,比如: (?<=\/Hello\/World\/special\/C

我问了一个问题,非常感谢你的帮助。 我有一个这样的URL

/您好/World/special/Case/2016/07/01/offer-015155.html

我只需要“
2016/07/01/offer-015155
”这个部分,每次都会动态更改。你能帮忙吗

  • 我尝试了
    “(.*?”,“\d{4}/\d\d/\d\d/offer-\d+”
    ,但没有帮助

当我运行时,它会显示“未找到”:(

你可以考虑使用积极的前瞻和积极的前瞻,比如:

(?<=\/Hello\/World\/special\/Case\/).*(?=.html)

你可以考虑使用积极的前瞻与积极的前瞻相结合,像这样:

(?<=\/Hello\/World\/special\/Case\/).*(?=.html)

您还可以尝试以下代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("(\\d{4}/\\d{2}/\\d{2}/offer-\\d+)");
        String testString = "/Hello/World/special/Case/2016/07/01/offer-015155.html";
        Matcher matcher = pattern.matcher(testString);
        if (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

执行结果:
2016/07/01/offer-015155

您也可以尝试以下代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("(\\d{4}/\\d{2}/\\d{2}/offer-\\d+)");
        String testString = "/Hello/World/special/Case/2016/07/01/offer-015155.html";
        Matcher matcher = pattern.matcher(testString);
        if (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

执行结果:
2016/07/01/offer-015155

如果要提取URL的一部分,可以使用非常简单的方法,如
(.+)

演示:

正则表达式配置示例(注意“要检查的字段”位)

参考资料:


如果您想提取URL的一部分,只需使用非常简单的
(.+)

演示:

正则表达式配置示例(注意“要检查的字段”位)

参考资料:


你应该转义定界符:
\d{4}\/\d\d\/\d\d\/offer-\d+
是你的朋友。:@MariaDeleva:我确实试过了……没有起作用。这和你文章中引用的那个有点不同,因为定界符是转义的。下面是您应该转义的分隔符:
\d{4}\/\d\d\/\d\d\/offer-\d+
是您的朋友。:)@玛丽亚德列娃:我确实试过了……不起作用。它和你文章中引用的有点不同,因为分隔符是转义的。这是非常感谢你。我想我不能在JMeter工具中实现这一点。不是吗?也许你可以在JMeter中使用正则表达式:(\\d{4}/\\d{2}/\\d{2}/offer-\\d+)非常感谢。我想我不能在JMeter工具中实现这一点。不是吗?也许你可以在JMeter中使用正则表达式:(\\d{4}/\\d{2}/\\d{2}/offer-\\d+)谢谢你,德米特里。你和往常一样棒极了。但我这里有这样的东西。我现在提取了一些东西,所以现在应该是这样的“/2016/01/07/offer-456789.html”。有没有办法,我可以“删除”这个.html…这样我就可以一直使用到没有.html的部分。谢谢。也许可以把regex改成
/Hello/World/special/Case/(.+).html
?谢谢你。你和往常一样棒极了。但我这里有这样的东西。我现在提取了一些东西,所以现在应该是这样的“/2016/01/07/offer-456789.html”。有没有办法,我可以“删除”这个.html…这样我就可以一直使用到没有.html的部分。谢谢。也许把regex改成
/Hello/World/special/Case/(.+).html