删除句子中的所有元音,除了那些出现在 R 中单词开头的元音
Remove all vowels in a sentence except for those which occur in the beginning of the word in R
目的是将所有不是句子中单词第一个字符的元音替换为空格。
例如,I AM A HAPPY MINISTER
=> I AM A HPPY MNSTR
。有没有办法在 R 中实现这个?
您可以尝试使用环视:
gsub("(?<=[A-Z])[AEIOU]", "", "I AM A HAPPY MINISTER", perl=TRUE)
# [1] "I AM A HPPY MNSTR"
此正则表达式搜索前面有任何大写字母的大写元音,然后将其替换为空字符串。
正如@Jota 在评论中提到的,另一种选择是使用 \S
(除 space class 之外的任何其他选项),这将允许在连字符或引号后删除元音例如:
gsub("(?<=\S)[AEIOU]", "", "I AM A HAPPY WELL-INTENTIONED MINISTER, D'ACCORD", perl=TRUE)
#[1] "I AM A HPPY WLL-NTNTND MNSTR, D'CCRD"
变体,使用参数 ignore.case
:
gsub("(?<=\S)[aeiou]", "", "I AM A HAPPY WELL-INTENTIONED MINISTER, D'ACCORD", perl = TRUE, ignore.case = TRUE)
我们可以SKIP
将[AEIOU]
开头的单词匹配到字符串其他部分的[AEIOU]
,替换为''
。
gsub("(\b|\s)[AEIOU](*SKIP)(*F)|[AEIOU]", "", str1, perl=TRUE)
#[1] "I AM A HPPY MNSTR"
数据
str1 <- "I AM A HAPPY MINISTER"
我们可以做到
x <- "I AM A HAPPY MINISTER"
gsub("([^\w ])[AEIOU]", "\1", x)
这将搜索不在字数限制或 space 之后的元音。删除元音 - 仅返回非字数限制字符(或 space)。
目的是将所有不是句子中单词第一个字符的元音替换为空格。
例如,I AM A HAPPY MINISTER
=> I AM A HPPY MNSTR
。有没有办法在 R 中实现这个?
您可以尝试使用环视:
gsub("(?<=[A-Z])[AEIOU]", "", "I AM A HAPPY MINISTER", perl=TRUE)
# [1] "I AM A HPPY MNSTR"
此正则表达式搜索前面有任何大写字母的大写元音,然后将其替换为空字符串。
正如@Jota 在评论中提到的,另一种选择是使用 \S
(除 space class 之外的任何其他选项),这将允许在连字符或引号后删除元音例如:
gsub("(?<=\S)[AEIOU]", "", "I AM A HAPPY WELL-INTENTIONED MINISTER, D'ACCORD", perl=TRUE)
#[1] "I AM A HPPY WLL-NTNTND MNSTR, D'CCRD"
变体,使用参数 ignore.case
:
gsub("(?<=\S)[aeiou]", "", "I AM A HAPPY WELL-INTENTIONED MINISTER, D'ACCORD", perl = TRUE, ignore.case = TRUE)
我们可以SKIP
将[AEIOU]
开头的单词匹配到字符串其他部分的[AEIOU]
,替换为''
。
gsub("(\b|\s)[AEIOU](*SKIP)(*F)|[AEIOU]", "", str1, perl=TRUE)
#[1] "I AM A HPPY MNSTR"
数据
str1 <- "I AM A HAPPY MINISTER"
我们可以做到
x <- "I AM A HAPPY MINISTER"
gsub("([^\w ])[AEIOU]", "\1", x)
这将搜索不在字数限制或 space 之后的元音。删除元音 - 仅返回非字数限制字符(或 space)。