2011-04-15 66 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可帮助您构建具有实时反馈的搜索字符串。