【问题标题】:RScript Regex pattern match invalidRScript 正则表达式模式匹配无效
【发布时间】:2019-07-29 11:22:23
【问题描述】:

我正在尝试使用 RScript 和 Regex 进行模式匹配,但我无法弄清楚为什么我不断收到 Pattern Invalid 错误。 (RScript 对我来说是新的,Python 是我的舒适区)。

我使用的模式是

^(?=.{8}$)[[:alpha:]]{2,5}[[:digit:]]{3,6}$

里面

pattern <- "^(?=.{8}$)[[:alpha:]]{2,5}[[:digit:]]{3,6}$"
isValidEntity <- function(x) {grepl(pattern , as.character(x), ignore.case=TRUE)}
output <- within(dataset,{Valid=isValidEntity(dataset$entity)})

错误是:

invalid regular expression '^(?=.{8}$)[[:alpha:]]{2,5}[[:digit:]]{3,6}$', reason 'Invalid regexp'

谁能解释我哪里出错了?

如果我将它写在 Python 脚本中并执行我需要的操作,则该模式可以完美运行。 (更改 A-z 和 0-9 的 POSIX char 类)。

谢谢,

【问题讨论】:

    标签: rscript


    【解决方案1】:

    解决了这个问题。

    打开“perl”选项有帮助。

    pattern <- "^(?=.{8}$)[[:alpha:]]{2,5}[[:digit:]]{3,6}$"
    isValidEntity <- function(x) {grepl(pattern , as.character(x), ignore.case=TRUE, perl=TRUE)}
    output <- within(dataset,{Valid=isValidEntity(dataset$entity)})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      相关资源
      最近更新 更多