如何删除字符串的第一个数字之后包含的所有内容?
x <- c("Hubert 208 apt 1", "Mass Av 300, block 3")
Run Code Online (Sandbox Code Playgroud)
在这个问题之后,我成功地删除了第一个数字之前的所有内容,包括第一个数字:
gsub( "^\\D*\\d+", "", x )
[1] " apt 1" ", block 3"
Run Code Online (Sandbox Code Playgroud)
但所需的输出如下所示:
[1] "Hubert 208" "Mass Av 300"
>
Run Code Online (Sandbox Code Playgroud)
在 OP 的当前代码中,稍作更改即可使其工作,即将匹配模式捕获为一个组 ( (...)) 并替换为反向引用 ( \\1)
sub("^(\\D*\\d+).*", "\\1", x)
#[1] "Hubert 208" "Mass Av 300"
Run Code Online (Sandbox Code Playgroud)
在这里,来自 OP 的模式意味着 ( "^\\D*\\d+") - 零个或多个不是\\D*来自^字符串开头 ( ) 的数字 ( )的字符,后跟一个或多个数字 ( \\d+) 并且这被捕获为带有括号 ( (...))的组。
此外,gsub我们不需要(全局替换),sub因为我们只需要匹配一个实例(从一开始)
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |