您好我对编码有点新意,并试图了解正则表达式的工作原理,
所以我正在使用产品处理XML文件,并希望删除标记内的特定文本。从下面的例子中可以看出:
<descr><br/>
<P>SOME RANDOM TEXT</P><br/>
<P>&nbsp;</P><br/></descr>
&#13;
我想删除此部分:
<P>&nbsp;</P>
&#13;
导致其干扰文本格式。 这可能会在标签内多次发生,因此我希望每次都将其删除。 我可以在Notepad ++中使用正则表达式吗?
答案 0 :(得分:2)
我能够用这个正则表达式进行替换:
(<descr>[\s\S]*?)<P>&nbsp;<\/P>([\s\S]*?<\/descr>)
取代:
$1 SUCCESS $2
我用作输入:
<descr><br/>
<P>SOME RANDOM TEXT</P><br/>
<P>&nbsp;</P><br/></descr>
<other><br/>
<P>SOME RANDOM TEXT</P><br/>
<P>&nbsp;</P><br/></other>
<descr><br/>
<P>SOME RANDOM TEXT</P><br/>
<P>&nbsp;</P><br/></descr>
它变成了:
<descr><br/>
<P>SOME RANDOM TEXT</P><br/>
SUCCESS <br/></descr>
<other><br/>
<P>SOME RANDOM TEXT</P><br/>
<P>&nbsp;</P><br/></other>
<descr><br/>
<P>SOME RANDOM TEXT</P><br/>
SUCCESS <br/></descr>
图像:
解释正则表达式:
( # start of group 1
<descr> # match the open tag
[\s\S] # space or non-space characters = anything
*? # the minimum amount till the next match
) # end of group 1
<P>&nbsp;<\/P> # your pattern, please note I had to escape the slash
( # start of group 2
[\s\S] # space or non-space characters = anything
*? # the minimum amount till the next match
<\/descr> # the closing tag, again look the escaped slash
) # end of group 2
替换:
$1 SUCCESS $2 # $1 stores the value matched by the group 1
# $2 stores the value matched by the group 2
# The text " SUCCESS " was an example, it could be empty