gpt4 book ai didi

regex - R正则表达式删除除字母、撇号和指定的多字符字符串之外的所有内容

转载 作者:行者123 更新时间:2023-12-01 10:43:14 25 4
gpt4 key购买 nike

是否有 R 正则表达式可以删除除字母、撇号和指定的多字符字符串以外的所有内容? “指定的多字符串”是任意的,任意长度。比方说 "~~" & && 在这种情况下(所以 ~ & & 应该被删除但不是 ~~ & &&)

我这里有:

gsub("[^ a-zA-Z']", "", "I like~~cake~too&&much&now.")

给出:

## [1] "I like~~cake~toomuchnow"

还有……

gsub("[^ a-zA-Z'~&]", "", "I like~~cake~too&&much&now.")

给...

## "I like~~cake~too&&much&now"

我如何编写一个 R 正则表达式来给出:

"I like~~caketoo&&muchnow"

编辑 Casimir 和 BrodieG 的极端案例...

我期望这种行为:

x <- c("I like~~cake~too&&much&now.", "a~~~b", "a~~~~b", "a~~~~~b", "a~&a")

## [1] "I like~~caketoo&&muchnow." "a~~b"
## [3] "a~~~~b" "a~~~~b"
## [5] "aa"

当前的方法都没有给出这一点。

最佳答案

一种方法,匹配/捕获“指定的多字符字符串”,同时替换其他字符串。

gsub("(~~|&&)|[^a-zA-Z' ]", "\\1", x)

# [1] "I like~~caketoo&&muchnow" "a~~b"
# [3] "a~~~~b" "a~~~~b"
# [5] "aa"

关于regex - R正则表达式删除除字母、撇号和指定的多字符字符串之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28759132/

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