2012-02-02 19 views
18

मैं h1 के साथ वर्ग "शीर्षक" वाले सभी h2 टैग को बदलने के लिए कोशिश कर रहा हूँ:सरल TextWrangler Grep बदलें

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

मैं इस के साथ TextWranger में मल्टी फ़ाइल खोज का उपयोग कर रहा:

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

मैं सबकुछ ढूंढने में सक्षम हूं, लेकिन जब मैं प्रतिस्थापित करता हूं, तो यह मेरे शीर्षक को grep बकवास से बदल देता है।

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

मेरे समस्या यह है कि खोज न केवल मेरे टैग की जगह है, लेकिन यह भी [^>] के साथ * मेरी सामग्री बदल देता है। मैंने Aptana में भी यह कोशिश की और वही बात हुई। मैं कुछ अंतर्दृष्टि की सराहना करता हूं।

उत्तर

34

ऐसा लगता है कि आप <h2 class="title"> को h1 में परिवर्तित कर रहे हैं? आप अपने में एक backreference उपयोग करने के लिए "की जगह":

खोज: <h2 class="title">([^>]*)</h2>

बदलें: <h1 class="title">\1</h1>

(aside- अगर यह एक h1 आप अभी भी 'वर्ग = "शीर्षक"' की रक्षा करना चाहते हैं है?)

खोज रेगेक्स में ब्रैकेट्स को नोट करें, जो उनके अंदर क्या बचाता है।

तो फिर तुम \1 का उपयोग उन्हें बदलना पाठ में वापस बाहर निकलने के लिए (कोष्ठक के पहले सेट के लिए \ 1, दूसरे के लिए \ 2, ...)

+0

धन्यवाद, backreference ठीक मेरी समस्या थी। –