使用gsub删除第一个数字字符之前的所有字符串

问题描述 投票:4回答:2

Use gsub remove all string before first white space in R

在此示例中,我们尝试使用sub(".*? (.+)", "\\1", D$name)删除空格之前的所有内容。我正在寻找真正相似的东西,但我对正则表达式并不十分熟悉。

我想删除第一个数字字符之前的所有内容,但不删除它

例如,带有:

x <- c("lala65lolo","papa3hihi","george365meumeu")

我想要:

> "65lolo","3hihi", "365memeu"
r string gsub
2个回答
3
投票

您可以使用

> x <- c("lala65lolo","papa3hihi","george365meumeu")
> sub("^\\D+", "", x)
[1] "65lolo"    "3hihi"     "365meumeu"

或者,确保有一个数字:

sub("^\\D+(\\d)", "\\1", x)

模式匹配

  • ^-字符串开头
  • [\\D+-数字以外的一个或多个字符
  • [(\\d)-捕获组1:一个数字(替换模式中的\1恢复在该组中捕获的数字)。]]
  • 以类似的方式,您可以实现以下目标:

  • [sub("^\\s+", "", x)-删除所有文本,直到第一个非空白字符]
  • [sub("^\\W+", "", x)-删除所有文本,直到第一个单词char]
  • [sub("^[^-]+", "", x)-删除所有文本,直到第一个连字符(如果有),等等。

7
投票

在R 3.6(当前为R devel版本)中,trimws之后有一个新的whitespace参数,可用于指定被视为空白的字符-在这种情况下,是任何非数字字符:

© www.soinside.com 2019 - 2024. All rights reserved.