我正在尝试从字符串中提取数字。
然后在字符串[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/