替换部分字符串

时间:2013-09-05 19:08:20

标签: regex r

我想根据该字符串的数字部分替换任何具有issue # 000...issue #000...(注意数字和井号之间的空格)和href url的内容。 ...代表任意数量的数字。

##这是一个MWE字符串:

News <- readLines(n=5)
CHANGES

* Fixed bug see GitHub issue #12

* Fixed bug see GitHub issue # 111. (John Doe)

News

##以下是href网址

的各个部分
## Roots
roota <- "<a href=\"https://github.com/trinker/qdap/issues/"
rootb <- "\">"
rootc <- "</a>"

##这是所需的输出

c("CHANGES",                                       
    "",                                              
    "* Fixed bug see GitHub <a href=\"https://github.com/trinker/qdap/issues/12\">issue #12</a>" ,             
    "",                                              
    "* Fixed bug see GitHub <a href=\"https://github.com/trinker/qdap/issues/111\">issue #111</a>. (John Doe)"
)

##这是我最初尝试提取作品

gsub("(.)(issue)(.[#])(\\s*)([0-9]+)", "\\1", News)

##抓住数字我几乎可以将它们粘贴在一起

paste(roota, DIGIT_GRABBED, rootb, "issue #, DIGIT_GRABBED, rootc)

* 我用正则表达式标记对此进行了标记,但请注意R正则表达式是一个特殊的品种,如果你回答,你应该熟悉R. <​​/ em>

1 个答案:

答案 0 :(得分:1)

你可以简单地使用:

gsub(pattern="issue *# *([0-9]+)", replacement="<a href=\"https://github.com/trinker/qdap/issues/\\1\">issue #\\1</a>", x=News)