2015-09-05 110 views
0

其他論壇成員, 我使用的是最新版本的NotePad ++。如果有人能夠幫助我開發一個執行開放的Regex &結束標記查找&替換操作取決於開始標記被替換之前是否打開<levelledPara>標記,我將不勝感激。下面是示例代碼來澄清我需要的正則表達式做:正則表達式的兩個標記查找和替換

找到這個文本字符串: <levelledPara><title>THIS IS TEXT FOR A TITLE</title>

替換此文本字符串: <levelledPara><para>THIS IS TEXT FOR A TITLE</para>

總之,我需要<title></title>只有在開頭<title>標籤前面打開<levelledPara>標籤時,纔將標籤替換爲<para></para>。另外,我需要<para></para>標籤中的文本保持不變。正則表達式可以執行這樣的操作嗎?

回答

0

您可以根據捕獲組使用正則表達式搜索:

(<levelledPara>\s*)<([^>]+)>(.*?)<\/\2> 

,並使用此替代:

$1<para>$3</para> 

RegEx Demo

正則表達式的分手:

(<levelledPara>\s*) # Match <levelledPara> followed by 0 or more spaces and group it ($1) 
<([^>]+)>   # Match a XML tag and group it ($2) 
(.*?)    # Match 0 or more characters (non-greedy) and group it ($3) 
<\/\2>    # Match closing tag using back-reference to captured group #2 

替代它:

$1  # Back-reference of captured group #1 
<para> # Literal text <para> 
$3  # Back-reference of captured group #1 
</para> # Literal text </para> 
+1

Anubhava,你是一個紳士和學者。我對RegEx感興趣的是,它不需要在查找和替換操作中包含「標題標籤」。我會測試它,看看它是如何工作的。 – Matrix

0

我發現下面的一個工作壓力太大。在查找框中保持:

   <levelledPara><title>(.*)</title> 

,並在替換框中保持

   <levelledPara><para>\1</para> 

希望這也是工作在你的情況。

0

你並不需要使用正則表達式,你可以找到「標題>」解決這個問題,取而代之的是「第>

相關問題