在R中,传递变量给正则表达式的替代方法是什么?

4

我编写的代码可以从一些文本中删除短单词和长单词:

# Remove Words based on lowerCutOff & upperCutOff
removeByLength<- function(text,lowerCutOff=2,upperCutOff=12){
  text<- gsub("\\b[a-zA-Z0-9]{1,lowerCutOff}\\b|\\b[a-zA-Z0-9]{upperCutOff,}\\b"," ",text)
  return(text)
}
我该如何在不硬编码下限和上限的情况下实现所需的功能?

请使用 paste()sprintf() - Andrie
1个回答

4
使用paste函数连接字符串以创建模式:
removeByLength<- function(text,lowerCutOff=2,upperCutOff=12){
  pattern <- paste("\\b[a-zA-Z0-9]{1,",lowerCutOff,
                 "}\\b|\\b[a-zA-Z0-9]{",upperCutOff,",}\\b", sep="")
  text <- gsub(pattern, " ", text)
  return(text)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,