我一直在尝试消除或替换单词之间的空格,而保留其他空格不变。例如:
string <- "Hi buddy 3.256.225 25.365.425"
希望得到的结果是:
string <- "Hibuddy 3.256.225 25.365.425"
我一直在尝试使用"gsub"和"str",但所有空格都被消除了,只想删除单词之间的空格。
谢谢
我一直在尝试消除或替换单词之间的空格,而保留其他空格不变。例如:
string <- "Hi buddy 3.256.225 25.365.425"
希望得到的结果是:
string <- "Hibuddy 3.256.225 25.365.425"
我一直在尝试使用"gsub"和"str",但所有空格都被消除了,只想删除单词之间的空格。
谢谢
gsub
中使用反向引用 (\\1
, \\2
)。gsub("([A-Za-z])\\s+([A-Za-z])", "\\1\\2", string)
[1] "Hibuddy 3.256.225 25.365.425"
[A-Za-z]
) 并捕获为一组 ((...)
),然后是一个或多个空格 (\\s+
),另一个字母也被捕获为一组。在替换中,指定这些捕获组的反向引用而不带任何空格。stringr
包中的 str_squish
函数:library(stringr)
str_squish(string)
[1] “嗨,伙计3.256.225 25.365.425”
str_remove_all(string, "(?<=[A-Za-z])\\s+(?=[A-Za-z])")# [1] "Hibuddy 3.256.225 25.365.425"
пјЊе› дёєstr_squish
еЏЄдјљз§»й™¤ејЂе¤ґе’Њз»“е°ѕзљ„з©єж јпј€е¦‚жћњж€‘жІЎи®°й”™зљ„иЇќпј‰гЂ‚ - akrunstr_trim()
函数可以删除字符串开头和末尾的空白字符;str_squish()
函数还可以缩减字符串内部重复的空白字符。 - Martin Gal
str2 <- "嗨,伙计,你好吗42,5285"; gsub("([A-Za-z])\\s+([A-Za-z])", "\\1\\2", str2)# [1] "HiBuddyhowareyou 42,5285"
- akrungsub("([^0-9.])\\s+([^0-9.])", "\\1\\2", str2)# [1] "HiBuddyhowareyou 42,5285"
- akrun