(这是R编程)
您可以参考示例问题:
dates <- c("12/15/10", "12-2012", "12.2014", "1995")
grep(pattern = "^[0-9]+.+[0-9]$", x = dates)
预先感谢您的帮助!!
答案1
这代码这个问题没有任何意义,因为我不知道它是用什么语言编写的。
正则表达式^[0-9]+.+[0-9]$
是一种 POSIX 扩展正则表达式,它匹配行开头的一个或多个数字,后跟一个或多个其他字符(可能包括数字),以及行末尾的最后一个数字。
表达式的组成部分是:
^
,这会将表达式锚定到一行的开头。[0-9]+
,这至少匹配集合中的一个字符0-9
,即数字。.+
,这至少匹配一个任何类型的字符。[0-9]
,这匹配单个数字。$
,这会将表达式锚定到行尾。
此表达式匹配的最短可能行的示例:
1a1
我在问题代码中看到的所有示例日期都会另外匹配表达式。下面说明了表达式的哪一部分与字符串的哪一部分匹配(使用sed
):
$ printf '%s\n' "12/15/10" "12-2012" "12.2014" "1995" | sed -E 's/^([0-9]+)(.+)([0-9])$/(\1)(\2)(\3)/'
(12)(/15/1)(0)
(12)(-201)(2)
(12)(.201)(4)
(19)(9)(5)