2015-08-03 30 views
1

我想用以下代碼替換「< p class =」myclass「>」類中的「< p>」標記&替換(使用常規在記事本++表達式)功能使用正則表達式在記事本++中搜索和替換表達式的第一個字符

<p><?php echo $element_arr["a1_discount"]; ?></p> 
<p><?php echo $element_arr["b2_discount"]; ?></p> 
<p><?php echo $element_arr["c5_discount"]; ?></p> 

我能配合以下REG-EX上面:

RegEx: (<p><\?php echo \$element_arr\["[A-Za-z][1-99]_discount"\]; \?>) 

我嘗試以下取代REG-EX,但它不工作:

(<p class="myclass"><\?php echo \$element_arr\["[A-Za-z][1-99]_discount"\]; \?>) 

它出來爲:<p class="cool"><?php echo $element_arr["[A-Za-z][1-99]_discount"]; ?></p>

有人可以幫助我。這將是一個巨大的節省時間,因爲我有很多這種性質的編輯工作。

非常感謝

DKJ

+1

我認爲你應該使用'後有<?php echo ... [A-Za-z] [1-9] [0-9]?'而不是'[A-Za-z] [1-99]';)。 –

+0

會記住這一點。從正則表達式開始。 – dkjain

回答

0

你甚至都不需要這樣的正則表達式。只要搜索

<p><p class="myclass">

+0

我特別想用正則表達式來做,而且還有其他的p標籤,以及不應該應用該類的地方。 – dkjain

+0

這個正則表達式怎麼樣:用 替換

> – theglossy1

0

替換它如果你有其他p標籤的各種屬性,你可以用下面的辦法:用(<p[^<>]*\bclass=")[^"]*("[^<>]*>)正則表達式

  1. 運行在S & [R替換爲$1myclass$2Regular Expression選項爲ON)。

這是工作的字符串等

<p class="someclass">text</p> 
<p id="new" class="someclass">text</p> 
<p id="new" class="someclass" end="true">text</p></code> 
  • 運行在S & R 2與<p\b(?![^<>]*\bclass=)([^<>]*)><p$1 class="myclass">替換爲段落標籤沒有屬性或不class屬性。
  • 這是罰款對於像

    <p>text</p> 
    <p id="new">text</p> 
    

    這種複雜性可以,如果你決定使用任何HTML解析器與常規編程語言很容易地刪除字符串。

    +0

    不錯,這個很有效,但我更喜歡第二步構建到正則表達式中。如果你可以解釋正則表達式,這將是很好的,謝謝 – dkjain

    +0

    你不能合併這些步驟,因爲在一種情況下會有屬性添加,另一種情況下會有屬性修改,實際上,還有另一種選擇,我忘了覆蓋:當沒有'class'屬性,但有其他屬性。我現在增加了這個案例 –

    0

    如何:

    查找內容:<p>(?=<\?php echo \$element_arr\["[A-Za-z][1-9][0-9]*_discount"\]; \?>)
    替換:<p class="myclass">

    (?=...)是一個積極的向前看,確保你的標籤<p>

    +0

    嗨,你測試了嗎?因爲這對我沒有用,儘管我喜歡這個方法 – dkjain

    +0

    @dkjain:對不起,我忘記了'[0-9]'後面的'*',即'[0-9] *' – Toto

    相關問題