Use gsub remove all string before first white space in R
在此示例中,我们尝试使用sub(".*? (.+)", "\\1", D$name)
删除空格之前的所有内容。我正在寻找真正相似的东西,但我对正则表达式并不十分熟悉。
我想删除第一个数字字符之前的所有内容,但不删除它
例如:
x <- c("lala65lolo","papa3hihi","george365meumeu")
我想要:
> "65lolo","3hihi", "365memeu"
感谢您的帮助。
答案 0 :(得分:6)
从R 3.6(当前为R devel版本)开始,trimws
具有一个新的whitespace
参数,该参数可用于指定被视为空白的字符-在这种情况下,是任何非数字字符:
trimws(x, "left", "\\D")
## [1] "65lolo" "3hihi" "365meumeu"
答案 1 :(得分:1)
您可以使用
> 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)
-删除所有文本,直到第一个连字符(如有)等。