在R中的另一个字符串中查找字符串

时间:2013-09-13 16:47:21

标签: string r compare

我想在R中的另一个字符串中找到一个字符串。字符串如下。我希望能够将字符串a与字符串b匹配,输出应该是a == b,返回TRUE

a <- "6250;7250;6251"
b <- "7250"
a == b                 #FALSE

2 个答案:

答案 0 :(得分:10)

您可以使用regmatchesgregexpr,但目前您的问题有些模糊,所以我不肯定这是您正在寻找的内容:

> regmatches(a, gregexpr(b, a))
[[1]]
[1] "7250"

> regmatches(a, gregexpr(b, a), invert=TRUE)
[[1]]
[1] "6250;" ";6251"

根据您更新的问题,您可能正在寻找grepl

> grepl(b, a)
[1] TRUE
> grepl(999, a)
[1] FALSE

^^我们基本上是说“在'a'中寻找'b'”。

答案 1 :(得分:3)

如果b等于725而不是7250,您是否还希望结果为TRUE

如果是这样,那么已经提供的grepl答案将有效(并且您可以通过设置fixed=TRUE来加快速度,因为没有匹配的模式。

如果您只想TRUE;之间的内容完全匹配,那么您需要将b嵌入到正则表达式中sprintf可能是strsplit (或更简单),使用a%in%拆分为仅匹配的部分,然后使用b查看{{1}}是否与其中任何一个匹配值。