替换匹配模式正则表达式的每个字符

Rud*_*son 7 regex r

我想替换匹配特定模式的字符串中的每个字符.请使用以下字符串

mystring <- c("000450")
Run Code Online (Sandbox Code Playgroud)

我希望将所有单个零匹配到第一个非零的元素.我试过类似的东西

gsub("^0[^1-9]*", "x", mystring)
[1] "x450"
Run Code Online (Sandbox Code Playgroud)

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

[1] "xxx450"
Run Code Online (Sandbox Code Playgroud)

谁能帮我吗?

Wik*_*żew 10

你可以用

mystring <- c("000450")
gsub("\\G0", "x", mystring, perl=TRUE)
## => [1] "xxx450"
Run Code Online (Sandbox Code Playgroud)

查看正则表达式演示R演示

\\G0正则表达式匹配0字符串的开始,任何0只匹配成功后出现.

细节

  • \G - 匹配("断言")字符串开头位置或成功匹配后的位置的锚点
  • 0- 一个0炭.