我从某些文本中删除短字和长字的代码是:
# 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
连接字符串以创建模式:
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)
}
关于regex - 在 R 中将变量传递给正则表达式的替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13803524/