我想在R中的另一个字符串中找到一个字符串。字符串如下。我希望能够将字符串a与字符串b匹配,输出应该是a == b
,返回TRUE
a <- "6250;7250;6251"
b <- "7250"
a == b #FALSE
答案 0 :(得分:10)
您可以使用regmatches
和gregexpr
,但目前您的问题有些模糊,所以我不肯定这是您正在寻找的内容:
> 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}}是否与其中任何一个匹配值。