正则表达式 – R中的正则表达式括号之谜
发布时间:2020-12-14 06:02:17 所属栏目:百科 来源:网络整理
导读:我正在尝试使用str_extract在文本文档中查找日期.但是,我遇到了一个难题.一般来说,我希望日期有两种形式:1)1914年6月15日2)1914年6月15日.但是当我尝试构建一个模式来捕获这两个选项时,我得到了NA结果. 例如,如果我尝试str_extract(“No.1.1914年6月20日.”
我正在尝试使用str_extract在文本文档中查找日期.但是,我遇到了一个难题.一般来说,我希望日期有两种形式:1)1914年6月15日2)1914年6月15日.但是当我尝试构建一个模式来捕获这两个选项时,我得到了NA结果.
例如,如果我尝试str_extract(“No.1.1914年6月20日.”,“[:alpha:] {3,8} [0-9] {1,2} [[az] {2}] ?,[0-9] {4}“),我得到NA.但如果我删除[a-z] {2}周围的括号,它就可以了.但是,如果我删除括号,我当然会获得字符串“No.1.1914年6月20日”的NA.但是,如果我留下括号,这确实有效. 我当然可以通过使用简单的if / else if语句解决这个问题,但我很好奇为什么这不起作用,并且如果有更好的方法来处理这些组合的情况. 解决方法
由于以下原因,它无法正常工作:
>您的POSIX字符类未正确包装在括号内的表达式中. 您的正则表达式修复如下: x <- 'No. 1. June 20th,1914.' str_extract(x,'[[:alpha:]]{3,8} [0-9]{1,2}([a-z]{2})?,[0-9]{4}') ## [1] "June 20th,1914" 您可以修改正则表达式: str_extract(x,'[a-zA-Z]+ d{1,d{4}') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |