我在R中有一个字符向量,我想使用正则表达式来提取某个模式。我想找到连续两个或多个独立字母的事件。这可以在较长的字符串内或较长的字符串的开头发生。然后我想删除这些字母之间的空格。如果在两个独立字母之间没有出现,我想保留空间。以下是我正在寻找的几个例子。
如果载体是:
v <- c("A B C", "ABC D E", "A BC D E FH", "A B CDE")
“A B C”应该成为“ABC”
“ABC D E”应成为“ABC DE”
“BC D E FH”应成为“A BC DE FH”
“A B CDE”应成为“AB CDE”
因此,删除间距后得到的矢量是:
c("ABC", "ABC DE", "A BC DE FH", "AB CDE")
向量中没有标点符号,所有字母都大写。
我已经做的就是找到它们:
grep("^[A-Z] [A-Z] ", v)
grep(" [A-Z] [A-Z] ", v)
但是,如果可能的话,我想在一个步骤中执行此操作,并考虑字符串可能以独立字符结尾。我不确定如何使用gsub
仅删除字符之间的空格。