论坛成员,
我使用的是最新版本的NotePad ++。如果有人可以帮助我开发一个执行开放性的正则表达式,我将非常感激。关闭标签查找&amp;替换操作取决于被替换的开口标签是否在开头<levelledPara>
标签之前。下面是示例代码,以阐明我需要正则表达式做什么:
找到这个文字字符串:
<levelledPara><title>THIS IS TEXT FOR A TITLE</title>
替换此文字字符串:
<levelledPara><para>THIS IS TEXT FOR A TITLE</para>
总结一下,只有当开头<title>
标记前面有一个开头时,我才需要将</title>
和<para>
标记替换为</para>
和<title>
{1}}标记。另外,我需要<levelledPara>
和<para>
标记内的文字保持不变。正则表达式是否可以执行此类操作?
答案 0 :(得分:0)
您可以根据捕获的群组:
将此正则表达式用于搜索(<levelledPara>\s*)<([^>]+)>(.*?)<\/\2>
并使用此替代品:
$1<para>$3</para>
正则表达式分手:
(<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 :(得分:0)
我发现下面的一个也在工作。在查找框中保留:
<levelledPara><title>(.*)</title>
并在替换框中保留
<levelledPara><para>\1</para>
希望这也适合你的情况。
答案 2 :(得分:0)
您不需要使用正则表达式,您可以通过找到“ title&gt; ”来解决此问题,并将其替换为“ para&gt; ”