Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex 如何使用正则表达式从URL获取路径?_Regex_Jmeter_Pcre - Fatal编程技术网

Regex 如何使用正则表达式从URL获取路径?

Regex 如何使用正则表达式从URL获取路径?,regex,jmeter,pcre,Regex,Jmeter,Pcre,也许有人能帮我弄一下这个正则表达式 .*\:\/\/(?:www.)?([^\/]+)(\/.+") 我需要从URL获取所有路径。我试过了,但我无法匹配没有引号的唯一路径 您可以使用JSR223采样器和Groovy代码获取路径 声明/获取URL变量 解析该URL以获取协议、主机、端口和路径。使用JSR223采样器并将以下代码粘贴到脚本区域 URL url1 = new URL(vars.get('url')); vars.put('protocol', url1.getProtocol()

也许有人能帮我弄一下这个正则表达式

.*\:\/\/(?:www.)?([^\/]+)(\/.+")
我需要从URL获取所有路径。我试过了,但我无法匹配没有引号的唯一路径


您可以使用JSR223采样器和Groovy代码获取路径

  • 声明/获取URL变量
  • 解析该URL以获取协议、主机、端口和路径。使用JSR223采样器并将以下代码粘贴到脚本区域

    URL url1 = new URL(vars.get('url'));
    
    vars.put('protocol', url1.getProtocol());
    vars.put('host', url1.getHost());
    vars.put('port', url1.getPort() as String);
    vars.put('path', url1.getPath());
    vars.put('query', url1.getQuery());
    
  • 使用${}在脚本中的任意位置使用该变量


  • 如果必须首先扫描URL:

    我试图提供一个简单的正则表达式(过于简化),它可能在您的上下文中工作,但您可能需要修改它以提供一些额外的上下文。例如,
    x
    是一个有效路径,这个正则表达式将识别它。但是,如果您试图在字符串(如
    )中查找路径,它也会将
    img
    识别为有效的url路径。在这种情况下,您可能需要:

    /<img\s+src="((https?|ftp):\/\/[^\/]+)?(\/?[^?#\s"]*)/i
    

    你可以选择以下方式:

    (?:([^:\\/?#]+):)?(?:\\/\\/([^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?
    
    演示:

    更多信息:


    此问题已被多次询问和回答(即重复)。“你的答案很可能是,”罗纳德·阿隆森不幸的是,这个答案不适合我。我用的是Jmeter。Jmeter不接受这个正则表达式。因此,当使用标记[regex]时,指南建议添加一个额外的标记,即使用regex的编程语言。根据Jmeter的说法,您可能还提到了“已接受”正则表达式的问题所在,以便不是Jmeter专家的人知道其局限性。@Ronaldaronson确定我不清楚,因为有人提出了这样一个问题,即OP有URL“在手”,不需要先搜索它。在本例中,这显然是一个简单的方法,不需要正则表达式。@SAIR如果我有一个动态url,则无法使用此技巧,我通过另一个正则表达式提取器获取该url:(@Ronaldaronson是的,你是对的。我最近一直在与Jmeter合作,因此我不知道它的功能well@twomvlad你能粘贴动态URL吗?@Ronaldaronson,第一件事是URL需要被他捕获并存储在一个变量中。这可以通过多种方式完成,取决于他从哪里获取URL。然后这个解决方案将会到位。我还通过声明URL变量展示了这一点。