替换匹配模式正则表达式

时间:2017-11-30 13:45:31

标签: r regex

我想替换匹配特定模式的字符串中的每个字符。采取以下字符串

mystring <- c("000450")

我希望将所有单个零匹配到第一个非零的元素。我试过像

这样的东西
gsub("^0[^1-9]*", "x", mystring)
[1] "x450"

此表达式用一个x替换所有前导零。但相反,我想用xxx替换所有三个前导零。首选结果是

[1] "xxx450"

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:10)

您可以使用

Duration

请参阅regex demoR demo

Duration 2 2Y 3 3Y customer Invoice A 2550 0.00 0.00 2000 Invoice B 5000 2500 1050 0.00 Invoice C 12500 0.00 1120 2050 Invoice D 0.00 1500 0.00 8010 正则表达式匹配字符串开头的mystring <- c("000450") gsub("\\G0", "x", mystring, perl=TRUE) ## => [1] "xxx450" 以及仅在成功匹配后才会显示的任何\\G0

<强>详情

  • 0 - 一个匹配(&#34;断言&#34;)字符串开头位置或成功匹配后的位置
  • 0 - \G字符。