我要从字符串中删除元音:
> gsub("\\B[A,E,I,O,U,a,e,i,o,u]+", "", "string.example")
[1] "strng.exmpl"
此缩减字符串包含11个字符。让我们说我有12个字符的空间,所以我想把第一个元音放回字符串中:
> MyFunction(string="string.example", maxchar=12)
[1] "string.exmpl"
或者使用maxchar = 13我希望下一个元音也被放回去:
> MyFunction(string="string.example", maxchar=13)
[1] "string.exampl"
等等。关于我想要多长时间,我怎么能逐渐放回元音呢?
答案 0 :(得分:1)
MyFunction <- function(string = 'string.example', maxchar = 12){
originalLength <- nchar(string)
while(nchar(string) > maxchar){
# remove last vowel
newstring <- gsub("(.*)[A,E,I,O,U,a,e,i,o,u](.*)", "\\1\\2", string)
# If you run out of vowels to remove, error
if(nchar(newstring) == nchar(string)) stop('No more vowels to remove but string still longer than maxchar')
string <- newstring
#print(string)
}
return(string)
}
不是最整洁,但认为它做你想要的。我添加了一个检查来处理maxchar短于没有任何元音的字符串的情况。