2015-06-17 69 views
-3

我想匹配突出顯示的部分。如何使正則表達式匹配這個?

enter image description here

的主要挑戰是與換行符我猜。 我知道,我可能只是做一些「混帳招數」,以保持所有的「頭」版本,但我想知道如何使用正則表達式做到這一點(用換行符挑戰)

<<<<<<< HEAD 
     this.foo(bar); 
======= 
     baz.qux.Quux = corge; 
     grault.garlply(waldo); 
     Fred = new plugh(); 
>>>>>>> origin/georgiana-9 
+0

好吧,'== *'突出顯示的部分比賽,但我認爲這不是你想要的。我建議你制定具體的標準來匹配和展示你已經嘗試過的東西。您還需要指定一個語言標記。 – Anonymous

+0

如果你粘貼了實際的代碼,那就太好了。無論如何,你可以通過輸入想要的字符串來做到這一點,當有新行時,只需添加'\ n' – Chris

+0

您可以嘗試'== [\ S \ s] +' – sln

回答

0

我可能會使用的東西像這樣:

===.(.*\n)+?>>>.*,假設您的示例作爲要求發現。如果你是新來的正則表達式,regexr是一個很好的正則表達式測試資源。

+1

可能希望使非貪婪的'===。(。* \ n)+?>>>。*'或它將匹配多個實例。 – sln

+0

這是一個很好的。 @sln的解決方案也沒關係。這是我的地方,我刪除了所有「不必要」的部分: =(。* \ n)+ >>>>>>> origin \/georgiana \ -9 – ThomasMX

0

enter image description here在VIM(7.3的MacVim),下面的搜索模式做這項工作。

/^==*\n\(.*\n\)* 

/-> find 
^= -> line starting with = 
    =* -> there could be more = sign afterwards 
    \n -> followed by a new line 
     \(.*\n\)* -> any number of lines afterwards