正则表达式 如何去除大写字母和单词之间的空格

3
我正在处理OCR处理的原始文本。
Antonio G uomez çapateyro 

我想删除大写字母和单词之间的空格:
Antonio Guomez çapateyro  

我尝试过的

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

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

我的问题:我可以使用空格匹配G,但我不知道如何移除空格。
1个回答

4
我们可以使用正向后顾(positive 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"

1
工作得很好 @akrun - Wilcar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接