【发布时间】:2016-07-12 09:57:42
【问题描述】:
我在 Ubuntu 中使用 R,并尝试查看文件列表,其中一些我需要,一些我不需要,
我试图通过在其中找到一个子字符串来获得我需要的那个,它需要只出现一次,
我正在使用函数 grep,我在这里找到了 grep function in r
并使用我在这里找到的正则表达式规则regex rules
当举个简单的例子时
a <- c("a","aa")
grep("a{1}", a)
我希望只得到一次恰好包含“a”的字符串,而不是我得到它们。
当我使用 2 而不是 1 时,我确实得到了一个字符串(包含“aa”的那个)的想要结果
我不能使用 $ 因为这不是我需要的单词的结尾,例如我需要使用这两个单词“germ-pass.tab”、“germ-pass_germ-pass.tab”并且只返回第一个包含“germ-pass”的第一个,并且只返回一次
我不能使用^a,因为我不需要诸如“aca”之类的词
谢谢。
【问题讨论】:
-
grep在您的string中查找模式,您需要添加到"a"后面不是:"a[^a]"的模式中 -
我发现我们可以使用 {} 来查找确切的出现次数,我正在尝试使用一个简单的正则表达式,对于一些比找到“a”更复杂的东西......试图找出我做错了什么{}
-
问题是,在“aa”中,有模式“a”,恰好出现一次。它恰好后面跟着另一个“a”......
-
你没有做错什么。您的两个示例都包含一次
a。第一个与a{2}不匹配。 -
stringi::stri_count()