【发布时间】:2017-08-07 23:55:48
【问题描述】:
我是新的正则表达式。假设我想得到一个字符串“1994-02-14 00:00:00, 12345”的正则表达式,现在我有了一个表达式:
.*\\d{4}-\\d{2}-\\d{2}[\\d{2}-\\d{2}-\\d{2}]?\,\\d{5}.
但是当我使用
grepl(pattern = "^.*\\d{4}-\\d{2}-\\d{2}[\\d{2}-\\d{2}-\\d{2}]?\,\\d{5}", x= x )
它给出了以下错误:'\,' is an unrecognized escape in string started "".*\d{4}-\d{2}-\d{2}[\d{2}-\ d{2}-\d{2}]?\," 我应该如何解决这个错误?换句话说,上述字符串的正确正则表达式是什么?
谢谢!!
【问题讨论】:
-
您的模式似乎有几个问题,但您具体询问的错误似乎是由于逗号前面的单个反斜杠,靠近模式的末尾。
-
正如消息所说,你有
\,你可能想要\\, -
去掉逗号前的反斜杠(逗号不是特殊字符,不需要转义)并在可选部分周围使用圆括号,而不是方括号。此外,在某些应该是冒号的地方还有减号。
-
我可以建议你使用
rebus包吗?