我有一个文本文件,其中包含要用a
打开到新标签的标签替换的网址.我正在将.txt文件转换为.md文件,并希望可点击链接.
我在下面展示了(1)MWE,(2)期望的输出(3)我最初尝试创建一个函数(我假设这将/可能需要gsub
和sprintf
实现的功能):
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;
其他语言的答案不太适合工作
这适用于您的示例x
,并使用您的repl
方法:
gsub("(http://[^ ]*)", repl('\\1'), x)
或没有你的repl
方法:
gsub("(http://[^ ]*)", '<a href="\\1" target="_blank">\\1</a>', x)