2011-12-15 22 views
2

私は、周囲のテキストのない別のバッファ内の正規表現の一致のリストを見たいです。たとえば、私は自分のHTML文書で定義されているすべてのクラス名を見るのが好きです。さらに、私は各試合のカウントを見るのが好きです。これのためのemacsライブラリはありますか?私は、テキストがあれば正規表現の一致の抽出?

例えば:

 
add related resources or links 
always respect the original author" 

と正規表現

 
"re." 

を私はマッチを探していると

 
rel: 1 
res: 2 

をカウントしています」のrelから提示されたことを確認してください関連する "であり、resは"リソース "および"尊重 "からのものである。

+1

入力と出力の例を挙げてみることはできますか?読者があなたの質問を解析して理解するために必要な作業の量を減らすと、答えが出やすくなります。 –

答えて

5
(defun my-re-counter (regexp) 
    (interactive "sregexp: ") 
    (let (matches) 
    (goto-char (point-min)) 
    (while (re-search-forward regexp nil t) 
     (let ((match (assoc (match-string 0) matches))) 
     (if match 
      (setcdr match (1+ (cdr match))) 
      (push (cons (match-string 0) 1) matches)))) 

    (pop-to-buffer "*regexp counts*") 
    (erase-buffer) 
    (dolist (match matches) 
     (insert (car match) ": " (int-to-string (cdr match)) "\n")) 
    (goto-char (point-min)))) 
+0

偉大な、私が尋ねたのとまったく同じ。これはさらに強化することができます。たとえば、結果内の特定のマッチをクリックすると、M-xでそれらのマッチが表示され、別のバッファでM-xのハイライト - 正規表現が発生します。別の適切な表示は、M-x orgモードと同様にツリーノードとして行われる。 – aartist