首页 > 解决方案 > 在两个单词 A 和 B 之间提取一个 word1

问题描述

我想在两个单词 A 和 B 之间提取一个 word1,但我不想在 word1 前后使用空格。而且我不想占用一个新单词 B 的出现。

例子:

library(stringr)
pattern <- "(?<=wA).*(?=wB)"
str1 <- "qzpdjpqz wA    Hello world !                   wB  edjifdjiq"
str2 <- "qzpdjpqz wA    Hello world !                   wB  wB"

str_match_all(str1, pattern)  
str_match_all(str2, pattern)

str11 <- "qzpdjpqz wA    word1                   wB  edjifdjiq\n 


qzpdjpqz wA                    word2                   wB 
wB\n

qzpdjpqz gregegt wA    word3                   wB  wB\n rsgeef vfsfeqz 

wA    word4 wB                 "

期望的结果->“你好世界!”

标签: rregexstringr

解决方案


这是一个基本 R 选项,在 之后和之前sub删除空格。'wA''wB'

str1 <- "qzpdjpqz wA    Hello world !                   wB  edjifdjiq"
str2 <- "qzpdjpqz wA    Hello world !                   wB  wB"

sub('.*wA\\s+(.*?)\\s+wB.*', '\\1', c(str1, str2)) 
#[1] "Hello world !" "Hello world !" 

推荐阅读