我尝试从 R 中的文本中提取像44.11.36.00-1(准确地说,nn.nn.nn.nn-n代表n0-9 之间的任何数字)这样的段落。
如果段落“粘”在非数字标记上,我想提取它们:
44.11.36.00-1从中提取nsfghstighsl44.11.36.00-1vsdfgh是可以的44.11.36.00-1提取自fa0044.11.36.00-1000is NOT
我读过那str_extract_all不适用于LookbehindandLookahead表达式,所以我很遗憾地回到了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})意思是“匹配前面没有数字的表达式”[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}-[0-9]{1}代表我寻求的表达(?![0-9]{1})意思是“匹配不带数字的表达式”