我需要在R中的字符串中的唯一字符(在我的情况下为&)之前和之后得到单词。

我需要从这样的东西中获取“ word1”:
“ ...有些东西单词1和单词2东西...”

在R中使用Perl正则表达式后,我可以得到单词:(?<=& )[^ ]*(?= )
(它的行为似乎是我想要的方式。我是从梳理在此站点上找到的答案中得到的)

现在,我需要获取&符号前面的单词。单词的长度会发生变化,其他前一个单词的数目以及空格也会发生变化。单词一可能是字母和数字,两边都用空格隔开。

最佳答案

如果使用(\S+)\s*&\s*(\S+),则将捕获&两侧的单词。这允许在“与”号周围使用可选的空格。

您需要将R字符串中的反斜杠加倍,并使用regexecregmatches函数应用模式并提取匹配的子字符串。

string  <- "...something something word1 & word2 something..."
pattern <- "(\\S+)\\s*&\\s*(\\S+)"
match   <- regexec(pattern, string)
words   <- regmatches(string, match)


现在,words是一个包含三个项目向量的单元素列表:整个匹配的字符串,后跟第一个和第二个反向引用。因此,words[[1]][2]word1words[[1]][3]word2

07-26 00:06
查看更多