替换字符串开头与正则表达式模式匹配的每个字符
Replace every single character at the start of string that matches a regex pattern
我想替换字符串中与特定模式匹配的每个字符。取下面的字符串
mystring <- c("000450")
我想将所有单零匹配到第一个非零元素。我试过类似
gsub("^0[^1-9]*", "x", mystring)
[1] "x450"
此表达式将所有前导零替换为单个 x
。但是,我想用 xxx
替换所有三个前导零。首选结果是
[1] "xxx450"
谁能帮帮我?
您可以使用
mystring <- c("000450")
gsub("\G0", "x", mystring, perl=TRUE)
## => [1] "xxx450"
见regex demo and an R demo
\G0
正则表达式匹配字符串开头的 0
,以及仅在成功匹配后出现的任何 0
。
详情
\G
- 匹配 ("asserts") 字符串开头或成功匹配后的位置的锚点
0
- 一个 0
字符。
我想替换字符串中与特定模式匹配的每个字符。取下面的字符串
mystring <- c("000450")
我想将所有单零匹配到第一个非零元素。我试过类似
gsub("^0[^1-9]*", "x", mystring)
[1] "x450"
此表达式将所有前导零替换为单个 x
。但是,我想用 xxx
替换所有三个前导零。首选结果是
[1] "xxx450"
谁能帮帮我?
您可以使用
mystring <- c("000450")
gsub("\G0", "x", mystring, perl=TRUE)
## => [1] "xxx450"
见regex demo and an R demo
\G0
正则表达式匹配字符串开头的 0
,以及仅在成功匹配后出现的任何 0
。
详情
\G
- 匹配 ("asserts") 字符串开头或成功匹配后的位置的锚点0
- 一个0
字符。