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