用html url替换所有文本URL

 那是黑夜过后的黎明_182 发布于 2023-02-05 09:08

我有一个文本文件,其中包含要用a打开到新标签的标签替换的网址.我正在将.txt文件转换为.md文件,并希望可点击链接.

我在下面展示了(1)MWE,(2)期望的输出(3)我最初尝试创建一个函数(我假设这将/可能需要gsubsprintf实现的功能):

MWE:

x <- c("content here: http://stackoverflow.com/", 
    "still more", 
    "http://www.talkstats.com/ but also http://www.r-bloggers.com/", 
    "http://htmlpreview.github.io/?https://github.com/h5bp/html5-boilerplate/blob/master/404.html"
)

**期望的输出:**

> x
[1] "content here: http://stackoverflow.com/"                                                     
[2] "still more"                                                                                  
[3] "http://www.talkstats.com/ but also http://www.r-bloggers.com/"                               
[4] "http://htmlpreview.github.io/?https://github.com/h5bp/html5-boilerplate/blob/master/404.html"

初步尝试解决:

repl <- function(x) sprintf("%s", x, x)
gsub("http.", repl(), x)

使用"http.\\s"正则表达式的一个角落情况是,字符串可能不会在空间中结束,x[3]或者url包含在http其中,不仅要解析一次(如图所示x[4]).

请注意R的 REGEX特定于R;
其他语言的答案不太适合工作

1 个回答
  • 这适用于您的示例x,并使用您的repl方法:

    gsub("(http://[^ ]*)", repl('\\1'), x)
    

    或没有你的repl方法:

    gsub("(http://[^ ]*)", '<a href="\\1" target="_blank">\\1</a>', x)
    

    2023-02-05 09:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有