RegEx
で、次のように、タグと2つの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>
タグとprimaryAddress
の間のすべてを見つけて、それを消去したい。
primaryAddress
タグの間はすべて変数ですが、primaryAddress
を取得するたびに、タグ全体とサブタグを削除します。
誰もそれを行う方法を知っていますか?
ただし、とにかくやりたい場合は、正規表現パターンを検索してください
<primaryAddress>[\s\S]*?<\/primaryAddress>
それを空の文字列に置き換えます...
次と一致させることができるはずです:/<primaryAddress>(.+?)<\/primaryAddress>/
タグ間のコンテンツは、一致したグループに含まれます。
これにより、属性が横にある場合や終了タグがない場合でも、タグの最も外側のレイヤーペアをキャプチャできます。
(<!--((?!-->).)*-->|<\w*((?!\/<).)*\/>|<(?<tag>\w+)[^>]*>(?>[^<]|(?R))*<\/\k<tag>\s*>)
編集:上記のコメントで述べたように、正規表現は常にXMLを解析するのに十分ではありません。
この方法を使用するのは良くありませんが、本当に正規表現で分割したい場合
<primaryAddress.*>((.|\n)*?)<\/primaryAddress>
検証済みの回答はタグを返しますが、これはタグ間の値を返すだけです。