我正在尝试使用包中的 R 中的某些文本提取值str_extract_all
,stringr
并且我想使用 perl 的正则表达式中的非匹配组(?:...)
来提取和清理一行中的相关值。
运行此代码时:
library(stringr)
## Example string.
## Not the real string, but I get the same results with this one.
x <- 'WIDTH 4\nsome text that should not be matched.\n\nWIDTH 46 some text.'
## extract values
str_extract_all(x, perl('(?:WIDTH\\s+)[0-9]+'))
我想得到这个结果:
[[1]]
[1] "4" "46"
但我明白了:
[[1]]
[1] "WIDTH 4" "WIDTH 46"
我究竟做错了什么?