如何用正则表达式提取url中的网址和文件?
可以使用正则表达式来提取url中的网址和文件,具体实现可以参考以下示例代码:
const url = "https://www.example.com/path/to/file.txt";
// 提取网址
const regexUrl = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;
const matchesUrl = url.match(regexUrl);
const website = matchesUrl[2] + "." + matchesUrl[3];
// 提取文件
const regexFile = /\/([^/]+\.\w{3,4})$/;
const matchesFile = url.match(regexFile);
const file = matchesFile[1];
console.log("Website: ", website); // 输出: Website: example.com
console.log("File: ", file); // 输出: File: file.txt
在上述代码中,使用了正则表达式来匹配url中的网址和文件,其中:
regexUrl是匹配网址的正则表达式,使用了一些常见的url格式和符号,具体解释如下:
^:匹配字符串开始位置
(https?:\/\/)?:匹配http或https开头的url
([\da-z.-]+):匹配域名部分
\.([a-z.]{2,6}):匹配顶级域名
([\/\w.-]*)*\/?:匹配路径部分
$:匹配字符串结束位置
matchesUrl是将url和regexUrl进行匹配得到的结果数组,其中第二个元素即为域名部分,第三个元素即为顶级域名部分。
regexFile是匹配文件名的正则表达式,使用了斜杠和文件名后缀来匹配文件名。
matchesFile是将url和regexFile进行匹配得到的结果数组,其中第一个元素即为文件名部分。
最后,可以使用console.log输出提取到的网址和文件名。