gpt4 book ai didi

r - 为什么 '[,-\\]' 匹配 '46' , 'X' , 'A' ,

转载 作者:行者123 更新时间:2023-12-04 10:58:21 25 4
gpt4 key购买 nike

我尝试使用 strsplit(str, '[,-\\+]') 拆分字符串,这意味着任何 ',', '-' or '+'可以是分隔符。但是,我发现这种模式似乎也匹配数字和大写字母。
尝试

  • grep('[,-\\]', 'X'), returns 1
  • grep('[,-\\]', '46'), returns 1
  • grep('[,-\\]', '-'), returns 1
  • grep('[,-\\]', ','), returns 1

  • 好像是 '[,-\\]'匹配所有数字,大写字母, ',''-' .

    我只是不明白为什么会这样。

    感谢您的任何意见

    最佳答案

    你需要使用

    strsplit(str, '[,+-]')

    拆分 , +- .如需添加 \要拆分,请使用 '[,\\+-]'使用默认的 TRE 正则表达式引擎。

    -位于括号表达式的末尾(或开头),它被解析为文字连字符。在您的情况下,它被视为范围运算符和 '[,-\\]'匹配 , 之间的一系列字符和 \ :

    enter image description here

    请注意,您在此处使用了 TRE 正则表达式风格(因为未指定 perl=TRUE),因此,双反斜杠被视为正则表达式模式中的文字反斜杠。 "[,-\\]"如果您使用 PCRE 正则表达式引擎来解析模式,则模式将无效,您需要在字符串文字中定义一个带有 4 个反斜杠的反斜杠。

    关于r - 为什么 '[,-\\]' 匹配 '46' , 'X' , 'A' ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45439407/

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