使用 gsub 删除第一个数字字符之前的所有字符串
Use gsub remove all string before first numeric character
在这个例子中,我们尝试用 sub(".*? (.+)", "\1", D$name)
删除 space 之前的所有内容。我正在寻找真正相似的东西,但我不太熟悉正则表达式。
我想删除第一个数字字符之前的所有内容但不删除它
例如:
x <- c("lala65lolo","papa3hihi","george365meumeu")
我要:
> "65lolo","3hihi", "365memeu"
您可以使用
> x <- c("lala65lolo","papa3hihi","george365meumeu")
> sub("^\D+", "", x)
[1] "65lolo" "3hihi" "365meumeu"
或者,要确保有一个数字:
sub("^\D+(\d)", "\1", x)
模式匹配
^
- 字符串开头
\D+
- 数字 以外的一个或多个字符
(\d)
- 捕获组 1:一个数字(替换模式中的 </code> 恢复该组中捕获的数字)。</li>
</ul>
<p>以类似的方式,您可以实现以下目标:</p>
<ul>
<li><code>sub("^\s+", "", x)
- 删除第一个非空白字符之前的所有文本
sub("^\W+", "", x)
- 删除第一个单词 char 之前的所有文本
sub("^[^-]+", "", x)
- 删除第一个连字符(如果有的话)之前的所有文本,等等。
在 R 3.6(目前是 R devel 版本)之后 trimws
有一个新的 whitespace
参数可以用来指定什么被视为空白——在这种情况下任何非数字字符:
trimws(x, "left", "\D")
## [1] "65lolo" "3hihi" "365meumeu"
在这个例子中,我们尝试用 sub(".*? (.+)", "\1", D$name)
删除 space 之前的所有内容。我正在寻找真正相似的东西,但我不太熟悉正则表达式。
我想删除第一个数字字符之前的所有内容但不删除它
例如:
x <- c("lala65lolo","papa3hihi","george365meumeu")
我要:
> "65lolo","3hihi", "365memeu"
您可以使用
> x <- c("lala65lolo","papa3hihi","george365meumeu")
> sub("^\D+", "", x)
[1] "65lolo" "3hihi" "365meumeu"
或者,要确保有一个数字:
sub("^\D+(\d)", "\1", x)
模式匹配
^
- 字符串开头\D+
- 数字 以外的一个或多个字符
(\d)
- 捕获组 1:一个数字(替换模式中的</code> 恢复该组中捕获的数字)。</li> </ul> <p>以类似的方式,您可以实现以下目标:</p> <ul> <li><code>sub("^\s+", "", x)
- 删除第一个非空白字符之前的所有文本sub("^\W+", "", x)
- 删除第一个单词 char 之前的所有文本
sub("^[^-]+", "", x)
- 删除第一个连字符(如果有的话)之前的所有文本,等等。
在 R 3.6(目前是 R devel 版本)之后 trimws
有一个新的 whitespace
参数可以用来指定什么被视为空白——在这种情况下任何非数字字符:
trimws(x, "left", "\D")
## [1] "65lolo" "3hihi" "365meumeu"