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

时间:2016-07-01 10:52:34

标签: java regex jmeter

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

  

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

我只需要" 2016/07/01/offer-015155"这一部分每次都会动态变化。你能帮忙吗?

  • 我尝试"(.*?)" , "\d{4}/\d\d/\d\d/offer-\d+."但没有帮助。

当我跑步时说,没找到。 :(

3 个答案:

答案 0 :(得分:0)

你可以考虑使用积极的外观和积极的前瞻,如下所示:

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

这个正则表达式是非常明确的但是完成了这项工作。有关正则表达式的解释,请参阅此内容:https://regex101.com/r/vY5mS2/2

编辑: 或者只是使用捕获组(https://regex101.com/r/vY5mS2/5

\/Hello\/World\/special\/Case\/(.*)\.html

答案 1 :(得分:0)

您也可以尝试以下代码:

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

答案 2 :(得分:0)

如果您想要提取网址的一部分,那么使用非常简单的内容就足够了,例如(.+)

演示:

RegExp Tester

正则表达式配置示例(介意&#34;要检查的字段&#34;位)

Regular Expression Extractor

参考文献: