2011-04-15 64 views
2

我有一個令人費解的搜索請求。可以說我正在尋找一個URI模式。我知道這個計劃和權力。可以說http://mycompany.com。Emacs搜索

在此URI模式之後,理想情況下,我搜索域中的大部分URI都有兩個路徑變量。 /上下文/資源。雖然它可能有更多。但它總會有一個上下文。

我想找到第一個路徑變量的不同集合。我不介意第二個和後來的路徑變量。所以如果我有這個。讓我們使用一個qname是myc。

myc:/context1/resource1 
    myc:/context1/resource2 
    myc:/context2/resource1 
    myc:/context3/resource1 
    myc:/context4/resource8 
    myc:/context1/resource12 

我將不得不獲得context1..4。感謝您的時間。

+0

需要澄清:你的意思是你想從當前位置搜索(及其相關的上下文)用於不同的上下文中的第一個位置?例如如果您位於示例的頂部(上下文爲`context1`),則需要到達第三行(`context2`),隨後的搜索將查找`context3`,另一個`context4`和另一個` context1`?或者是其他東西? – 2011-04-15 17:29:15

+0

@Trey,我不確定我是否完全理解你的問題。但我認爲我們是在同一頁... – 2011-04-15 17:39:49

+0

可以說,我有一個正則表達式提到所有字符串以uri模式開頭,我可以使用M-x列表匹配行。這會給我的搜索結果列表。我想知道是否可以對搜索結果進行進一步處理。 – 2011-04-15 17:40:38

回答

3

如果我理解正確的話,

(require 'cl) 

(remove-duplicates 
(loop while (re-search-forward "myc:/\\(.*?\\)/" nil t) 
     collect (match-string-no-properties 1)) 
:test #'string=) 
2

Emacs支持通常綁定到C-M-s的正則表達式搜索。 Emacs manual在Emacs中有關於正則表達式的一個很好的部分。

還有M-x regexp-builder可幫助您構建具有實時反饋的搜索字符串。