Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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
如何将复制块中的链接转换为html链接_Html_Regex_Hyperlink - Fatal编程技术网

如何将复制块中的链接转换为html链接

如何将复制块中的链接转换为html链接,html,regex,hyperlink,Html,Regex,Hyperlink,我有一个HTML代码块,有大约156个网站链接。如何将链接转换为HTML链接 https://siteA.com/xyA. https://siteB.com/xyB. https://siteC.com/xyC. https://siteD.com/xyD.如果在将打开查找和替换面板的vscode中按Ctrl+H,请在查找输入中输入(.*)。,启用regex切换,然后在替换输入中输入。应该能够一次全部更换 (.*)\.regex接受以句点结尾的行上的任何内容,并将url(不带句点)放入捕获

我有一个HTML代码块,有大约156个网站链接。如何将链接转换为HTML链接

https://siteA.com/xyA.
https://siteB.com/xyB.
https://siteC.com/xyC.

https://siteD.com/xyD.
如果在将打开查找和替换面板的vscode中按
Ctrl+H
,请在查找输入中输入
(.*)。
,启用regex切换,然后在替换输入中输入
。应该能够一次全部更换

(.*)\.
regex接受以句点结尾的行上的任何内容,并将url(不带句点)放入捕获组。在替换中,我们使用
$1
将捕获组插入到替换文本中。

(https:\/\/.*?…*?)\。
应使用您使用的任何工具替换为

说明:

https:\/\/
应该是清晰的,因为它是文字

*?\…*?\。
将匹配您的域名和任何内容,直到第二个文本


整个表达式将放在括号中,以捕获作为一个组的域名,并替换为第二个正则表达式。

我是新开发人员,这是我的第一个答案。我不明白您使用“https://”和“.”作为标识符是什么意思?所以我所做的基本上是假设您在.html页面的某个地方有一个代码块:

    <code id="codeBlock">
     https://siteA.com/xyA.
     https://siteB.com/xyB.
     https://siteC.com/xyC.
     https://siteD.com/xyD.
    </code>
    <div id="linkOutput"></div>

https://siteA.com/xyA.
https://siteB.com/xyB.
https://siteC.com/xyC.
https://siteD.com/xyD.
JavaScript文件分割代码块的内容,删除空白和所有内容,然后创建所需的链接标记,并将它们显示回HTML文件(我这样做更多是为了表明代码工作正常)

//从HTML
块获取数据
//过滤掉空白
var数据=[];
数据=文件
.getElementById(“代码块”)
.innerHTML.split(/\s+/)
.过滤器(e=>e.length>1);
对于(变量i=0;i

希望这有帮助

你用什么语言来做这件事?@Evert他用Visual Studio代码和记事本++来做这件事,如上所述!在通过脚本运行正则表达式时,我更相信的一点是,一些url中有多个句点。喜欢或者url中的peiords可以是1到4之间的任意位置。有两个脚本没有获取完整的url。这将失败,因为域名中有点@csabinho我只是在自己的机器上运行它,如果每个url都在自己的行上(如示例中所示),它绝对不会失败。我意识到它通过了,因为
*
是贪婪的@csabinho是的,但是编辑器中简单字符串替换的性能不是很重要,所以在我看来保持它的简单更重要。当然,在必要的时候,prod中的一些内容不应该那么贪婪。将人们与过于复杂的
regex
es混淆是没有意义的!原始海报正在寻找使用regex的解决方案,因为这可以在搜索中使用。@csabinho.In The find,piece“(https:\/\/.*?\…*?)\。它似乎可以找到url的所有引用,但当我将其替换为“”时,它不会显示提取的值。我只是照原样显示了相关的字符串。基本上相同的替换字符串
//get data from the HTML <code> block
//filter out whitespace
var data = [];
data = document
    .getElementById("codeBlock")
    .innerHTML.split(/\s+/)
    .filter(e => e.length > 1);

for (var i = 0; i < data.length; i++) {
    //create <a> tag and set attributes
    var para = document.createElement("a");
    para.setAttribute("href", data[i]);
    para.setAttribute("target", "_blank");
    var node = document.createTextNode(data[i]);
    para.appendChild(node);
    //append it to HTML front end
    document.getElementById("linkOutput").appendChild(para);
}

/*
got some inspiration here:
https://blog.abelotech.com/posts/split-string-into-tokens-javascript/
https://www.w3schools.com/js/js_htmldom_nodes.asp
*/