本文介绍了R中的动态正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
只要 before
和 after
字符串没有正则表达式所特有的字符,下面的代码就可以工作:
The below code works so long as before
and after
strings have no characters that are special to a regex:
before <- 'Name of your Manager (note "self" if you are the Manager)' #parentheses cause problem in regex
after <- 'CURRENT FOCUS'
pattern <- paste0(c('(?<=', before, ').*?(?=', after, ')'), collapse='')
ex <- regmatches(x, gregexpr(pattern, x, perl=TRUE))
R 是否具有转义字符串以用于正则表达式的函数?
Does R have a function to escape strings to be used in regexes?
推荐答案
使用 \Q...\E
来包围逐字的子模式:
Use \Q...\E
to surround the verbatim subpatterns:
# test data
before <- "A."
after <- ".Z"
x <- c("A.xyz.Z", "ABxyzYZ")
pattern <- sprintf('(?<=\\Q%s\\E).*?(?=\\Q%s\\E)', before, after)
给出:
> gregexpr(pattern, x, perl = TRUE) > 0
[1] TRUE FALSE
这篇关于R中的动态正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!