假设我有一些示例文本如下:
; </span><year><o:p></o:p>
</span><</span><span style=3D'font-size:9.0pt;mso-bidi-font-family:Arial'>manufacturer></span><span style=3D'mso-bidi-font-family:Arial'>
</span><model><o:p>
</span><<span class=3DSpellE>serial_number</span>><o:p>
</span><<span class=3DSpellE>accessories_value</span>><o:p></o:p></span>
</span><<span class=3DSpellE>accessories_list</span>>
p; </span><<span class=3DSpellE>worldwide_yn</span>>
</span><</b><span class=3DSpellE><span style=3D'mso-no-proof:yes'>pet_name</span></span><span style=3D'mso- no-proof:yes'>></span><o:p></o:p></p>
我希望找到并替换以下每种情况:
< any_html_tags markers_text any_html_tags >
这里:
html_tags:可选,可以是开启和关闭类型,数字可以是零到多次,这里可能有任何HTML标记。
markers_text:可以是两种格式之一,可以是xxxxx(任何字符数)或xxxx_xxxxxx(文本可以是任意长度)。
就像我希望能够在示例文件中找到以下文本:
1) <year>
2) <</span><span style=3D'font-size:9.0pt;mso-bidi-font-family:Arial'>manufacturer>
3) <model>
4) <<span class=3DSpellE>serial_number</span>>
5) <<span class=3DSpellE>accessories_value</span>>
6) <<span class=3DSpellE>accessories_list</span>>
7) <<span class=3DSpellE>worldwide_yn</span>>
8) <</b><span class=3DSpellE><span style=3D'mso-no-proof:yes'>pet_name</span></span><span style=3D'mso-no-proof:yes'>>
并将其替换为相应的项目,例如:
1) <year>
2) </span><span style=3D'font-size:9.0pt;mso-bidi-font-family:Arial'><manufacturer>
3) <model>
4) <span class=3DSpellE></span><serial_number>
5) <span class=3DSpellE></span><accessories_value>
6) <span class=3DSpellE></span><accessories_list>
7) <span class=3DSpellE></span><worldwide_yn>
8) </b><span class=3DSpellE><span style=3D'mso-no-proof:yes'></span></span><span style=3D'mso-no-proof:yes'><pet_name>
所以基本上我想要&amp; lt;和&amp; gt;除了MARKER_TEXT之外的每个标签都被移除并且在&amp; lt;之前 我正在使用c#Regex方法。
你能否建议正确的正则表达来实现它?
最终样本结果应如下所示:
; </span><year><o:p></o:p>
</span></span><span style=3D'font-size:9.0pt;mso-bidi-font-family:Arial'><manufacturer></span><span style=3D'mso-bidi-font-family:Arial'>
</span><model><o:p>
</span><span class=3DSpellE></span><serial_number><o:p>
</span><span class=3DSpellE></span><accessories_value><o:p></o:p></span>
</span><span class=3DSpellE></span><accessories_list>
p; </span><span class=3DSpellE></span><worldwide_yn>
</b><span class=3DSpellE><span style=3D'mso-no-proof:yes'></span></span><span style=3D'mso-no- proof:yes'><pet_name>
答案 0 :(得分:1)
这个搜索/替换可能就是你要找的东西:
图案:
<((?:</?span[^>]*>)*)(\w+)((?:</?span[^>]*>)*)>
替换:
$1<$2>$3
online demo (请参阅“上下文标签”)