74

では、次のように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

誰でもそれを行う方法を知っていますか?

4

5 に答える 5

141

HTML/XML の解析に正規表現を使用するのは得策ではありません...

ただし、とにかくやりたい場合は、正規表現パターンを検索してください

<primaryAddress>[\s\S]*?<\/primaryAddress>

空の文字列に置き換えます...

于 2012-11-05T22:48:55.640 に答える
20

あなたはそれと一致させることができるはずです:/<primaryAddress>(.+?)<\/primaryAddress>/

タグ間のコンテンツは、一致したグループになります。

于 2012-11-05T22:48:07.543 に答える
6

これにより、属性がサイドにある場合や終了タグ​​がない場合でも、最も外側のレイヤーのタグのペアをキャプチャできます

(<!--((?!-->).)*-->|<\w*((?!\/<).)*\/>|<(?<tag>\w+)[^>]*>(?>[^<]|(?R))*<\/\k<tag>\s*>)

編集: 上記のコメントで述べたように、正規表現は常に xml を解析するのに十分ではありません。より多くの状況に合わせて正規表現を変更しようとすると、長くなりますが、それでも役に立ちません。

于 2014-10-25T16:04:36.757 に答える