Doz*_*Doz 54 php java regex xml perl
在RegEx,我想找到标签和两者之间的所有内容XML tags,如下所示:
<primaryAddress>
<addressLine>280 Flinders Mall</addressLine>
<geoCodeGranularity>PROPERTY</geoCodeGranularity>
<latitude>-19.261365</latitude>
<longitude>146.815585</longitude>
<postcode>4810</postcode>
<state>QLD</state>
<suburb>Townsville</suburb>
<type>PHYSICAL</type>
</primaryAddress>
Run Code Online (Sandbox Code Playgroud)
我想找到标签和之间的所有内容primaryAddress,并将其删除.
primaryAddress标签之间的所有内容都是变量,但我希望每当我得到时删除整个标签和子标签primaryAddress.
任何人都知道如何做到这一点?
Ωme*_*ega 113
但是,如果您仍想执行此操作,请搜索正则表达式模式
<primaryAddress>[\s\S]*?<\/primaryAddress>
Run Code Online (Sandbox Code Playgroud)
并用空字符串替换它...
使用此方法不好,但是如果您真的想用正则表达式拆分它
<primaryAddress.*>((.|\n)*?)<\/primaryAddress>
Run Code Online (Sandbox Code Playgroud)
经过验证的答案将返回标签,但这仅返回标签之间的值。
这可以捕获大多数最外层标签对,即使属性位于侧面或没有结束标签
(<!--((?!-->).)*-->|<\w*((?!\/<).)*\/>|<(?<tag>\w+)[^>]*>(?>[^<]|(?R))*<\/\k<tag>\s*>)
Run Code Online (Sandbox Code Playgroud)
编辑:如上面评论中所述,正则表达式始终不足以解析xml,尝试修改正则表达式以适应更多情况只会使其更长,但仍然无用