2016-10-03 84 views
1

我有超過一千個網頁我需要在某個字段內抓取html數據,然後不替換該數據,但我需要將該數據複製到上面的meta字段中,文件。正則表達式 - 在Dreamweaver中查找和替換

我發現下面的代碼有點使用完整。

發現:

<span class="CatStyle">(.*)</span>

更換如。

<span class="CatStyle">$1</span> <meta name="Category" content="$1">

但我將如何使用/我可以使用正則表達式來找到上面說,但隨後而不是替換就像我在上面的例子中的數據,可以我替換/插入變量$ 1插入<meta name="Category" content="$1">的頭部內文檔,而不是插入跨度下方。 ?

任何想法?

+1

這聽起來像你需要使用搜索和替換對話框中的模式,對吧?在所討論的span範圍之前,只有一個名稱爲Category的標籤?嘗試'( [\ s \ S] * )([\ s \ S] *?)( )'並換成'$ 1 $ 3 $ 2 $ 3 $ 4' –

+0

Spot On!Worked Perfectly!:D Legend。:)你應該在下面重新發布這個答案,所以我可以把它作爲正確的答案 –

+0

另外,當涉及到常規表達我理解到A(。*)B在A和B之間找到值,並且用於替換目的爲$ 1。你究竟做了什麼/代碼/函數在做什麼?這很好,但我只是好奇它究竟是如何工作的。 –

回答

2

注意:要操縱HTML,您可以使用更好的工具 - HTML解析器 - 而不是使用正則表達式支持的S & R對話框。

對於一次性的工作,如果你需要使用模式的裏面搜索和替換對話框只有一個metaname等於類別span之前,你可以使用標籤

(<meta name="Category" content=")[^"]*(">[\s\S]*<span class="CatStyle">)([\s\S]*?)(</span>) 

並用$1$3$2$3$4代替反向引用序列。

詳細

  • (<meta name="Category" content=") - 第1組捕獲<meta name="Category" content="
  • [^"]* - 比"
  • (">[\s\S]*<span class="CatStyle">)其他0+字符 - 組2捕獲">,那麼任何0+字符(如許多儘可能)直到最後<span class="CatStyle">然後<span class="CatStyle">本身
  • ([\s\S]*?) - 第3組捕獲任何0+字符,儘可能少,直至第一...
  • (</span>) - 第4組捕獲</span>

$n的是反向引用,以與圖案定義的基團配對(...)的幫助。

+0

另外,查看更多關於[*捕捉團體*](http://www.regular-expressions.info/brackets.html)和[* Backreferences *](http://www.regular-expressions.info/replacebackref。 html)在regular-expressions.info。 –

相關問題