我正在尝试从字符串中提取数字。

然后在字符串[0-9]+上执行类似"aaa12xxx"的操作,并获得"12"

我以为会是这样的:

> grep("[0-9]+", "aaa12xxx", value=TRUE)
[1] "aaa12xxx"

然后我想到...
> sub("[0-9]+", "\\1", "aaa12xxx")
[1] "aaaxxx"

但是我得到了某种形式的回应:
> sub("[0-9]+", "ARGH!", "aaa12xxx")
[1] "aaaARGH!xxx"

我缺少一个小细节。

最佳答案

使用新的stringr包,该包以一致的语法包装所有现有的正则表达式操作,并添加一些缺少的内容:

library(stringr)
str_locate("aaa12xxx", "[0-9]+")
#      start end
# [1,]     4   5
str_extract("aaa12xxx", "[0-9]+")
# [1] "12"

关于regex - 提取正则表达式匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2192316/

10-12 01:58