正则表达式如何删除maj字符和单词的空间

时间:2016-05-21 13:25:03

标签: regex r

我正在处理来自OCR处理的原始文本

Antonio G uomez çapateyro 

我想删除maj字符和单词之间的空格:

Antonio Guomez çapateyro  

我尝试了什么

(?:[A-Z])[\s]

text <- readLines("clipboard" , encoding = "latin1")
text2 <- gsub("(?:[A-Z])[\s]", "", text2)

我的问题:我可以将G与空间匹配,但我不知道如何删除空间

1 个答案:

答案 0 :(得分:4)

我们可以使用正面的lookbehind匹配一个或多个空格(\\s+),前面加上大写字母((?<=[A-Z])),并将其替换为''

gsub("(?<=[A-Z])\\s+", "", str1, perl=TRUE)
#[1] "Antonio Guomez çapateyro"

或者没有任何外观,我们可以将大写字母捕获为一个组,后跟一个或多个空格,并将其替换为反向引用(\\1)。

sub("([A-Z])\\s+", "\\1", str1)
#[1] "Antonio Guomez çapateyro"

数据

str1 <- "Antonio G uomez çapateyro"