相关疑难解决方法(0)

提取正则表达式匹配

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

并做一些类似于[0-9]+字符串"aaa12xxx"和得到的东西"12".

我以为它会是这样的:

> grep("[0-9]+", "aaa12xxx", value=TRUE)
[1] "aaa12xxx"
Run Code Online (Sandbox Code Playgroud)

然后我想...

> sub("[0-9]+", "\\1", "aaa12xxx")
[1] "aaaxxx"
Run Code Online (Sandbox Code Playgroud)

但我做了某种形式的回应:

> sub("[0-9]+", "ARGH!", "aaa12xxx")
[1] "aaaARGH!xxx"
Run Code Online (Sandbox Code Playgroud)

我缺少一个小细节.

regex r

97
推荐指数
6
解决办法
8万
查看次数

R - 使用grep和gsub在同一个(字符)向量元素中返回多个匹配项

想象一下,我们想要找到下面字符串中的所有FOO和后续数字并将它们作为向量返回(对于不可读性道歉,我想说明在FOO之前和之后没有规则模式):

xx <- "xasdrFOO1921ddjadFOO1234dakaFOO12345ndlslsFOO1643xasdf"
Run Code Online (Sandbox Code Playgroud)

我们可以用它来找到其中一个(取自1)

gsub(".*(FOO[0-9]+).*", "\\1", xx)
[1] "FOO1643"
Run Code Online (Sandbox Code Playgroud)

但是,我希望将所有这些作为向量返回.

我曾经想过使用strplit()和gregexpr()这样做的复杂方法 - 但我觉得有更好(更容易)的方法.

grep r

0
推荐指数
1
解决办法
1433
查看次数

标签 统计

r ×2

grep ×1

regex ×1