如何使用正则表达式获取 r 中第一个单引号内的单词?

How to get the words within the first single quote in r using regex?

比如我有两个字符串:

stringA = "'contentX' is not one of ['Illumina NovaSeq 6000', 'Other', 'Ion Torrent PGM', 'Illumina HiSeq X Ten', 'Illumina HiSeq 4000', 'Illumina NextSeq', 'Complete Genomics', 'Illumina Genome Analyzer II']"

我不熟悉如何做正则表达式并且坚持在第一个单引号内提取单词。

预计

## do regex here
gsub("'(.*)'", "\1", stringA) # not working

> "contentX"

对于您的示例,您的模式将是:

gsub("^'(.*?)'.*", "\1", stringA)

https://regex101.com/r/bs3lwJ/1

首先我们断言我们在字符串的开头,后面的字符是带有 ^' 的单引号。然后我们捕获所有内容,直到第 1 组中的下一个单引号,使用 (.*?)'.

请注意,我们需要 .*? 中的 ? 否则 .* 将“贪婪”并一直匹配到单引号的最后一次出现,而不是下一个单引号。