gpt4 book ai didi

R正则表达式可以替换左括号但不能替换右括号

转载 作者:行者123 更新时间:2023-12-04 19:52:20 26 4
gpt4 key购买 nike

我正在尝试替换字符串中的左括号和右括号。 R 似乎是为左括号做的:

> gsub("[\\[]","==","hello [world]")
[1] "hello ==world]"

但不适用于右括号
> gsub("[\\]]","==","hello [world]")
[1] "hello [world]"

为什么会这样?

最佳答案

看,gsub("[\\]]","==","hello\\] [world]")中的图案, [\]] , 有效匹配 \其次是 ] .试试 gsub("[\\]]","==","hello\\] [world]") ,结果将是 hello== [world] ,文字反斜杠将被替换。

在 TRE 正则表达式模式中,\括号内的表达式匹配文字反斜杠。

作为您的 "[\\]]" 的修复程序正则表达式,您可以删除 \从模式:

gsub("[[]","==","hello [world]")

this R online demo .

不过,您可以使用 PCRE 模式对其进行转义,因为 PCRE 字符类允许在其中转义字符:
gsub("[\\[]","==","hello [world]", perl=TRUE)

another demo

如果您需要更换 [] ,只要把 ][括号内的表达式:
 gsub("[][]","==","hello [world]")

关于R正则表达式可以替换左括号但不能替换右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39868146/

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