2012-02-02 26 views
18

Tôi cố gắng để thay thế tất cả các thẻ h2 chứa lớp "title" với h1:Simple TextWrangler Grep Thay

<h2 class="title">Things</h2> 

Tôi đang sử dụng tìm kiếm Multi-File trong TextWranger với điều này:

<h2 class="title">[^>]*</h2> 

Tôi có thể tìm thấy mọi thứ, nhưng khi tôi nhấn thay thế, nó sẽ thay thế tiêu đề của tôi bằng grep crap.

BEFORE: <h2 class="title">Things</h2> 
AFTER: <h1 class="title">[^>]*</h1> 

Vấn đề của tôi là tìm kiếm không chỉ thay thế thẻ mà còn thay thế nội dung của tôi bằng [^>] *. Tôi cũng đã thử điều này trong Aptana và điều tương tự đã xảy ra. Tôi sẽ đánh giá cao một số thông tin chi tiết.

Trả lời

34

Có vẻ như bạn đang chuyển đổi <h2 class="title"> thành h1? Bạn phải sử dụng một backreference trong bạn "thay thế":

Tìm kiếm: <h2 class="title">([^>]*)</h2>

Thay thế: <h1 class="title">\1</h1> (aside- nếu đó là một h1 làm bạn vẫn muốn giữ gìn 'class = "title"'?)

Lưu ý các dấu ngoặc trong regex tìm kiếm, lưu những gì bên trong chúng.

Sau đó, bạn sử dụng \1 để kéo chúng trở lại ra trong văn bản thay thế (\ 1 cho tập đầu tiên của khung, \ 2 cho phần thứ hai, ...)

+0

Cảm ơn bạn, backreference là chính xác vấn đề của tôi. –