r - 如何在 R 的字符类中包含右方括号?

标签 r regex

此问题已在 this 中解决问题及解答 here (并且还引用了this问题),但他们都没有真正回答这个问题——为第一个问题提供的答案回避了这个问题。更一般的正则表达式答案似乎不适用于 R:

gsub('[\\]`]', '', '`]')
# [1] "`]"

我正在尝试匹配一组特定的标点符号,所以 [:punct:]太笼统了。

最佳答案

字符类中的右括号似乎对我有用未转义,即只需使用此:

gsub('[]`]', '', '`]')
[1] ""

看来 R 解释器“知道”平衡字符类中的右括号或左括号(即由正确的左括号和右括号组成)实际上只是一个字符。

以下是这一说法的证据:

gsub('[]a-z`]', '', '`]abc')
[1] ""

如果第一个 [] 是封闭且空的字符类,则范围 a-z 不应该起作用,而字母 bc 应该保持不变。

另外:如果我们尝试使用空字符类进行替换,我们会收到错误,例如

gsub('[]', '', '`]')
Error in gsub("[]", "", "`]") : 
  invalid regular expression '[]', reason 'Missing ']''

关于r - 如何在 R 的字符类中包含右方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840013/

相关文章:

r - 在 Shiny 中保存和加载滤镜设置

在 Shiny R Studio 中重置动画

javascript - 在正则表达式中匹配多个输入值

javascript - 从带有 trim 空格和新行的字符串中获取主题标签

对角线以下的绘图值重新排序?

r - 使用单个参数将数组从 bash 脚本传递给 R Vector

R:将 LIME 应用于 Quanteda 文本模型的问题

c# - 使用正则表达式按类名选择 xml 元素

带标点符号的重复单词的正则表达式

regex - 从右到左匹配正则表达式?