正则表达式在某个字符R Perl之前抓取单词

Gre*_*egS 7 regex perl r

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

我需要从这样的东西中得到'word1':"......有些东西是word1和word2的东西......"

在R中使用Perl正则表达式之后我可以得到这个词:( (?<=& )[^ ]*(?= ) 它似乎按照我想要的方式运行.我通过梳理我在本网站上找到的答案得到它)

我现在需要在&符号前面加上这个词.单词的长度发生变化,其他前面单词的数量以及空格也会发生变化.单词一可以是字母和数字,只是被两边的空格所限制.

Bor*_*din 15

如果你使用(\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)
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*utt 5

(?<=&)(\w*)(?=&)"
Run Code Online (Sandbox Code Playgroud)

将匹配&符号之间的任何单词字符.使用积极的外观和积极的前瞻.