R 如何在字符串中找到相同的模式?

R 如何在字符串中找到相同的模式?,r,stringr,R,Stringr,我想从字符串中提取相同的模式,比如 a <- "abczzzzz" b <- "rrrrabckkk" 已经检查了stringr包,但是,这些函数都需要已知的模式,而我没有,并且不可能知道模式的nchar,因此,我更喜欢最长的匹配模式。 请告知,谢谢 更新--- 事实上,我正在处理一个庞大的数据集,就像我只有传感器的描述一样,我想找出它所属的机器名,而机器名将是描述中最常见的单词。逐字比较是可行的,我仍在寻找更有效的方法。谢谢答案已经帮了我很大的忙。我们可以在每个字符处拆分字符串,

我想从字符串中提取相同的模式,比如

a <- "abczzzzz"
b <- "rrrrabckkk"
已经检查了
stringr
包,但是,这些函数都需要已知的模式,而我没有,并且不可能知道模式的nchar,因此,我更喜欢最长的匹配模式。 请告知,谢谢

更新---


事实上,我正在处理一个庞大的数据集,就像我只有传感器的描述一样,我想找出它所属的机器名,而机器名将是描述中最常见的单词。逐字比较是可行的,我仍在寻找更有效的方法。谢谢答案已经帮了我很大的忙。

我们可以在每个字符处拆分字符串,然后使用
intersect
来获得常见的字符串

intersect(strsplit(a, "")[[1]], strsplit(b, "")[[1]])
#[1] "a" "b" "c"
要获得所需的准确输出,我们可以将它们粘贴在一起

paste(intersect(strsplit(a, "")[[1]], strsplit(b, "")[[1]]), collapse = "")
#[1] "abc"

如果有多个字符串,我们可以使用
Reduce
(另请参见):


a分解并比较元素!谢谢,我现在就试试!不,实际上是因为我们在这里花了很多时间。因此,当我们读到问题是否重复以及搜索重复的正确关键字是什么时,我们就会有一个想法。感谢您真诚的反馈。真的很有灵感。待我理解后,我将删除该问题。再次感谢!我不确定这是(清晰的)复制品。如果你不删除它,以防它保持打开状态,或者如果它被关闭,其他人在将来可以找到它作为复制品的链接,那就更好了。事实证明,它不是一个完全相同的复制品。因此,发布了一个答案。
paste(intersect(strsplit(a, "")[[1]], strsplit(b, "")[[1]]), collapse = "")
#[1] "abc"
a <- "abczzzzz"
b <- "rrrrabckkk"
c <- "dsaqwabc"

paste(Reduce(intersect, strsplit(c(a, b, c), "")), collapse = "")
#[1] "abc"