我嘗試提取像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