我需要匹配前面有两个不同元音的'r'.例如,'我们'或'梨'将匹配,但'bar'或'aar'不匹配.我确实设法匹配两个不同的元音,但我仍然不能使...后续'r'的lookbehind 条件().既(?<=...)r不会...\\Kr产生任何结果.有任何想法吗?
x <- c('([aeiou])(?!\\1)(?=(?1))')
y <- c('our','pear','bar','aar')
y[grepl(paste0(x,collapse=''),y,perl=T)]
## [1] "our" "pear"`
Run Code Online (Sandbox Code Playgroud) 给定这个向量:
ba <- c('baa','aba','abba','abbba','aaba','aabba')'
Run Code Online (Sandbox Code Playgroud)
我想将a每个单词的结尾更改为iexceptbaa和aba。
我写了以下行...
gsub('(?<=a[ab]b{1,2})a','i',ba,perl=T)
Run Code Online (Sandbox Code Playgroud)
但被告知:PCRE 模式编译错误 ')a' 处的后视断言不是固定长度。
我环顾四周,显然 R/Perl 只能向前看可变宽度,而不是向后看。这个问题有什么解决方法吗?谢谢!
emperor <- rbind(cbind('Augustus','Tiberius'),cbind('Caligula','Claudius'))
如何返回包含序列'us'的所有单元格的行号和列号,即[1,1],[1,2],[2,2]?
假设我有一个向量c('JKA1','BP9C','SSTQ3WA'),我想将数字前的字符更改为该数字,以便R返回'JK11' 'B99C' 'SST33WA'.无论如何使用正则表达式进行此操作还是我最好使用除R之外的其他内容?
鉴于test <- c('met','meet','eel','elm'),我需要一行代码匹配任何不在'我'或'ee'的e.我写道(ee|me)(*SKIP)(*F)|e,它确实排除了"遇见"和"鳗鱼",但没有"遇见".这是因为|是独家还是?无论如何,有没有一个解决方案只能返回'榆树'?
为了记录,我知道我也可以做(?<![me])e(?!e),但我想知道解决方案是什么(*SKIP)(*F)以及为什么我的线路是错误的.
给定一行,一列或一个单元格的矩阵,我需要在保持矩阵结构的同时重新排序行.我尝试添加,drop=F但它不起作用!我做了什么?
test = matrix(letters[1:5]) # is a matrix
test[5:1,,drop=F] # not a matrix
test2 = matrix(letters[1:5],nrow=1) # is a matrix
test2[1:1,,drop=F] # not a matrix
test3 = matrix(1) # is a matrix
test3[1:1,,drop=F] # not a matrix
Run Code Online (Sandbox Code Playgroud) 给定字符串ab cd ; ef gh ij,如何删除第一个空格之后的所有空格;,即ab cd ; efghij?我尝试使用\K但无法让它完全工作。
test = 'ab cd ; ef gh ij'
gsub('(?<=; )[^ ]+\\K +','',test,perl=T)
# "ab cd ; efgh ij"
Run Code Online (Sandbox Code Playgroud) 我试图从矢量中找到任何不包含连续元音的单词,我将其定义为[aeiou].例如,我想要"阿拉斯加"或"密西西比",而不是"格鲁吉亚"或"夏威夷".我知道{2,}两个或两个以上的东西,而[^...]不是东西.但我无法弄清楚如何在grep下将它们组合起来.救命?
states <- c('Alaska','Georgia','Hawaii','Mississippi')
我想用x替换以下向量中每个字符串的第二个字母。
ba <- c('ba','aba','baba')
# goal: bx, axa, bxba
Run Code Online (Sandbox Code Playgroud)
通常我只会使用substr(ba,2,2) <- 'x'。但是由于过于复杂的原因而无法进入此处,我试图避免substr,而是寻找另一种解决方案。因此,我尝试将字符串拆分并替换每个列表的第二个元素。但我收到此错误消息。
ba2 <- strsplit(ba,'')
lapply(ba2,function(x) x[2]) <- 'x'
# Error in lapply(ba2, function(x) x[2]) <- "x" :
# could not find function "lapply<-"
Run Code Online (Sandbox Code Playgroud)
我该如何解决此问题?有没有可以lapply结合使用的方法<-?