我尝试提取像44.11.36.00-1
(准确地说,nn.nn.nn.nn-n
,其中n
代表任何数量从0-9)在R.[R正则表达式回顾后先行问题
从文本中我想提取通道的通道,如果他们是“贴“非数字标记:
44.11.36.00-1
从nsfghstighsl44.11.36.00-1vsdfgh
提取正常44.11.36.00-1
从fa0044.11.36.00-1000
提取不
我已阅读,str_extract_all
没有与Lookbehind
和Lookahead
表达式的工作,所以我垂头丧气地回来grep
,但不能处理它:
> pattern1 <- "(?<![0-9]{1})[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}-[0-9]{1}(?![0-9]{1})"
> grep(pattern1, "dyj44.11.36.00-1aregjspotgji 44113600-1 agdtklj441136001 ", perl=TRUE, value = TRUE)
[1] "dyj44.11.36.00-1aregjspotgji 44113600-1 agdtklj441136001 "
这不是我期待的结果。
我认为:
(?<![0-9]{1})
手段“匹配表达式,其不是由数preceeded”[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}-[0-9]{1}
代表我寻求(?![0-9]{1})
手段“匹配表达式表达其后面没有由一个数字“
'grep'不会提取子字符串。你需要'regmatches'。 – Roland 2014-10-26 13:46:37
Roland,请您根据我上面的代码提供一些快速示例吗? – 2014-10-26 13:53:12