Javascript 用于匹配不同类型的http类型字符串的正则表达式
在文本文件中,有一个字符串编码http相关信息。以下是字符串示例Javascript 用于匹配不同类型的http类型字符串的正则表达式,javascript,regex,linux,Javascript,Regex,Linux,在文本文件中,有一个字符串编码http相关信息。以下是字符串示例 URL 123.34.45.7:http://captive.apple.com/hotspot-detect.html 或 我编写了一些正则表达式来提取部分直到http,例如 url)\\s\\d+[.]\\d+[.]\\d+[.]\\d+[:](http|https|ftp) 但是我不知道如何编写正则表达式来匹配http后面的部分。谢谢。试试下面的正则表达式: /^(URL[^:]+:)(?:.*?\/\/)(.*)/gm
URL 123.34.45.7:http://captive.apple.com/hotspot-detect.html
或
我编写了一些正则表达式来提取部分直到http,例如
url)\\s\\d+[.]\\d+[.]\\d+[.]\\d+[:](http|https|ftp)
但是我不知道如何编写正则表达式来匹配http后面的部分。谢谢。试试下面的正则表达式:
/^(URL[^:]+:)(?:.*?\/\/)(.*)/gm
演示:
它将打印:
URL 123.34.45.7:captive.apple.com/hotspot-detect.html
要在给定(可能较大)字符串中查找类型为“URL[IP地址]:[URL]”的字符串,请尝试以下操作:
var patterns = {
ip: '\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}',
url: (() => {
var protocol = '(http(s)?(:\/\/))?(www\.)?';
var domains = '[a-zA-Z0-9-_\.]+';
var params = '([-a-zA-Z0-9:%_\+.~#?&//=]*)';
return protocol + domains + params;
})()
}
var regex = new RegExp(`URL ${patterns.ip}:${patterns.url}`);
查看此小提琴:
*
将多次匹配任何字符
因此,如果将其添加到字符串末尾,您将得到:
url\s\d+[.]\d+[.]\d+[.]\d+[:](http|https|ftp).*
这将一直匹配到最后一行
注意,为了可读性,我将\\
改为\
。你可能需要重新逃离他们
那么您想捕获(看起来)IP地址?http之前的文本?我想从一个大文本文件中捕获整个字符串URL 123.34.45.7:谢谢,但我想从整个文本文件中提取整个字符串,比如URL 123.34.45.7:嗯,这很简单。它已经捕获包括URL,但我不确定你需要显示什么只是IP部分
var patterns = {
ip: '\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}',
url: (() => {
var protocol = '(http(s)?(:\/\/))?(www\.)?';
var domains = '[a-zA-Z0-9-_\.]+';
var params = '([-a-zA-Z0-9:%_\+.~#?&//=]*)';
return protocol + domains + params;
})()
}
var regex = new RegExp(`URL ${patterns.ip}:${patterns.url}`);
url\s\d+[.]\d+[.]\d+[.]\d+[:](http|https|ftp).*