gpt4 book ai didi

r - 在所有标点符号周围放置空格,但不包括撇号

转载 作者:行者123 更新时间:2023-12-02 18:16:24 24 4
gpt4 key购买 nike

我是新手,如果这是一个愚蠢的问题,我很抱歉...我需要一些 R 中的代码方面的帮助...

我有一些代码(如下),它在文件夹中所有 txt 文件中的所有标点符号周围放置了一个空格。它很可爱,但我不希望它在撇号 (') 周围添加空格 -

谁能帮我排除 gsub("(\.+|[[:punct:]])", "\1 "--- 中的撇号?或者你会怎么做? (带[^?)

我明白了:“我想要 : 所有这些标记周围的空格 ; : ! . . 但我不希望它在那里”

我想要这个:“我想要 : 所有这些标记周围的空格 ; : ! ? . 但我不希望它在那里没有”

for(file in filelist){
tx=readLines(file)
tx2=gsub("(\\.+|[[:punct:]])", " \\1 ", tx)
writeLines(tx2, con=file)
}

最佳答案

你可以使用

tx <- "I want: spaces around all these marks;:!?.but i didn’t want it there in didn't"
gsub("\\s*(\\.+|[[:punct:]])(?<!\\b['’]\\b)\\s*", " \\1 ", tx, perl=TRUE)
## => [1] "I want : spaces around all these marks ; : ! ? . but i didn’t want it there in didn't"

perl=TRUE仅表示正则表达式由 PCRE 库处理(注意 PCRE 正则表达式引擎与 Perl 正则表达式引擎不同)。参见 the R demo onlineregex demo .

详细信息:

  • \s* - 零个或多个空格
  • (\.+|[[:punct:]]) - 第 1 组 ( \1 ):一个或多个点,或一个标点字符
  • (?<!\b['’]\b) - 在左边,不能有 '用字符括起来
  • \s* - 零个或多个空格

关于r - 在所有标点符号周围放置空格,但不包括撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71540112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com