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 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
你可以选择以下方式:
(?:([^:\\/?#]+):)?(?:\\/\\/([^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?
演示:
更多信息: