タグの複数のインスタンスを含む可能性のある大きな文字列から、'<a href="..."> something.jpg</a>'タグから情報を再帰的に抽出する必要があります。Oracle11gで正規表現を使用してこれを行う必要があります。
私が探しているものの例は次のとおりです。
文字列の例:
文字列には常に<a>タグのインスタンスが少なくとも1つ含まれ、含めることができる数に上限はありません
。hrefは常にxidになります-[[:digit:]]
タグの属性は異なる場合があります
<p>text about something important</p><p><a href="@X@EmbeddedFile.requestUrlStub@X@bbcswebdav/xid-1234_1" target="_blank">file.pdf</a> </p><p><a href="@X@EmbeddedFile.requestUrlStub@X@bbcswebdav/xid-1235_1" target="_blank">anotherfile.pptx</a> </p><p><a href="@X@EmbeddedFile.requestUrlStub@X@bbcswebdav/xid-1236_1" target="_blank">yetanotherfile.pdf</a> </p>
ここで、その文字列を使用して、
REGEXP_SUBSTR(<string>、'<pattern>'、<start>、<occurrence>)を使用し、オカレンス値を調整して、3つの<a ...> ...</a>ブロックを抽出します。 3つのインスタンスを取得します。
私がこれまでに持っているのは:
SELECT REGEXP_SUBSTR(main_data, ''<a[[:print:]]+href="[[:print:]]+xid-1234_1"[[:print:]]+>[[:print:]]+</a>'', 1, 1)
FROM table
そしてそれから得られる結果は
<a href="@X@EmbeddedFile.requestUrlStub@X@bbcswebdav/xid-1234_1" target="_blank">file.pdf</a> </p><p><a href="@X@EmbeddedFile.requestUrlStub@X@bbcswebdav/xid-1235_1" target="_blank">anotherfile.pptx</a> </p><p><a href="@X@EmbeddedFile.requestUrlStub@X@bbcswebdav/xid-1236_1" target="_blank">yetanotherfile.pdf</a>
つまり、最初の<aから始めて、最後の</a>まで取得します。</a>の最初のインスタンスで停止する必要がある場合。次に、オカレンスを2に増やすと、2番目の<a></a>タグのセットを取得する必要があります。ただし、現在、オカレンスを2に設定すると、何も返されません。
どんな助けでもありがたいです。ありがとうございました