问题
Use gsub remove all string before first white space in R
In this example, we try to remove everything before a space with sub(".*? (.+)", "\\1", D$name)
. I'm looking for something really similar but I'm not really familiar with regex.
I want to delete everything before the first numeric character but without remove it
For example with:
x <- c("lala65lolo","papa3hihi","george365meumeu")
I want:
> "65lolo","3hihi", "365memeu"
回答1:
You may use
> x <- c("lala65lolo","papa3hihi","george365meumeu")
> sub("^\\D+", "", x)
[1] "65lolo" "3hihi" "365meumeu"
Or, to make sure there is a digit:
sub("^\\D+(\\d)", "\\1", x)
The pattern matches
^
- start of string\\D+
- one or more chars other than digit(\\d)
- Capturing group 1: a digit (the\1
in the replacement pattern restores the digit captured in this group).
In a similar way, you may achieve the following:
sub("^\\s+", "", x)
- remove all text up to the first non-whitespace charsub("^\\W+", "", x)
- remove all text up to the first word charsub("^[^-]+", "", x)
- remove all text up to the first hyphen (if there is any), etc.
回答2:
In R 3.6 (currently the R devel version) onwards trimws
has a new whitespace
argument which can be used to specify what is regarded as whitespace -- in this case any non-digit character:
trimws(x, "left", "\\D")
## [1] "65lolo" "3hihi" "365meumeu"
来源:https://stackoverflow.com/questions/54311359/use-gsub-remove-all-string-before-first-numeric-character