替换数字R正则表达式

时间:2013-08-10 08:32:56

标签: regex r gsub

我正在尝试为R中的代码编写一个html标记工具,但我很难找到并用彩色数字替换数字。

我认为以下是正确的方向,但我不知道该怎么做:

txt <- gsub("\\<[:digit:]\\>", paste0(num.start,"\\1",num.end) , txt)

这似乎没有完成这项工作。总的来说,我希望识别所有不属于单词的数字,并用改变颜色的数字之前和之后的标签替换,并由num.start,num.end变量定义。

例如:

num.start <- '<span style="color: #990000"><b>'
num.end   <- '</b></span>'

所以我希望能够提供说R代码,并在适当时编写html标签。

RCODE:

 txt <- "a <- 3945 ; b <- 3453*3942*a"
 gsub("\\<[:digit:]\\>", paste0(num.start,"\\1",num.end) , txt)
 [1] "a <- <span style="color: #990000"><b>3945</b></span> ; b <- <span style="color: #990000"><b>3453</b></span>*<span style="color: #990000"><b>3942</b></span>*a"

希望我可以将修改后的R代码复制到html编辑器(例如我的博客)中,并且所有数字都将采用颜色编码。

非常感谢您的帮助! 弗朗西斯

1 个答案:

答案 0 :(得分:1)

虽然我不建议在HTML中使用正则表达式,但这可以完成这项工作:

gsub("(\\d+)", paste0(num.start,"\\1",num.end) , txt)

结果:

[1] "a <- <span style=\"color: #990000\"><b>3945</b></span> ; b <- <span style=\"color: #990000\"><b>3453</b></span>*<span style=\"color: #990000\"><b>3942</b></span>*a"