【问题标题】:Regular expression error when using stringr (R package) to search for curly brackets使用stringr(R包)搜索大括号时出现正则表达式错误
【发布时间】:2015-07-23 10:46:26
【问题描述】:

我正在尝试使用 stringr 包在 R 中的文本字符串中搜索大括号。使用以下代码:

library(stringr)
textstring <- 'abc}defg}hij'
str_locate_all(textstring, 'e')

工作正常,但是

str_locate_all(textstring, '}')

给出以下错误信息:

stri_locate_all_regex 中的错误(字符串,模式,omit_no_match = TRUE, : 正则表达式模式中的语法错误。 (U_REGEX_RULE_SYNTAX)

我在 Ubuntu 14.04 LTS 中使用 R 版本 3.2.1 和 stringr 版本 1.0.0。

有人可以帮帮我吗?

【问题讨论】:

  • 要么转义元字符,要么将其放在括号中的表达式中,否则你可以只做str_locate_all(textstring, fixed('}'))
  • 我对@9​​87654324@ 和? 有同样的问题,fixed("?") 工作得很好;非常感谢@hwnd

标签: regex r


【解决方案1】:

{ 是一个特殊字符 - 你必须转义它:

str_locate_all(textstring, '\\}')

【讨论】:

  • 问题已解决,谢谢!我试图用一个反斜杠(没有用)来逃避它,但是双反斜杠就可以了。
  • 我遇到了同样的错误。就我而言,我按照推荐在str_count 函数中使用'\\+'
【解决方案2】:

感谢您的提示,并按照以下方式替换空格中的所有 +:

str_replace_all(df$Installs, "\\+", " ")

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 2012-03-14
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多