我想除非是有否定項多達3個字來寫,將確定支持方面(即'檢測「證據」)代碼之前檢查一個,兩個或三個詞鍛鍊模式之前。負回顧後或字符串
一些例子: 「FISH檢測沒有發現BCL2易位」 「FISH測試沒有提供BCL2易位的證據」
我試着用回顧後,但由於它需要一個精確的長度我不能有回顧1-3個詞的靈活性。
我試着用鋼化點,但它給出了任何數量的單詞。
我現在擁有的代碼在「支持診斷」術語之前只看到一個單詞。
grepl("(?<!\\bnot\\b\\s|cannot\\s|n't\\s|\\bno\\b\\s|negative\\s)(reveal|seen|show|detect|demonstrate|confirm|identif|evidence|suggest|positive|observe)(?:(?!\\bnot\\b)(?!cannot)(?!n't)(?!\\bno\\b)(?!negative for)(?!,).)*?(bcl-?2|14[q]?[;:]18)"), y, perl=TRUE,ignore.case = T)
謝謝。非常棒!我將'(?1)'改爲'(?-1)',這樣引用就是相對的(即模式之前的最後一個捕獲組)。我仍然試圖完全理解_consuming_的概念。在這種情況下,_w + _和_w ++ _的功能是否相同? – user2387584
@ user2387584:在'\ W +',佔有慾量詞禁止回溯,在接下來的負先行''失敗,這是非常有用這裏((1)?!)。通過這種方式,非捕獲組失敗更快。請注意,您可以得到同樣的效果寫作或多或少:'(?:\ w + \ B((1))\ w +?!?),因爲PCRE自動possessification機制的'。 –