1

私はOracle 11gR2を使用しています。

[] を含む '[' と ']' の間のテキストを抽出しようとしています。

元:

    select regexp_substr('select userid,username from tablename where user_id=[REQ.UID] and username=[REQD.VP.UNAME]','\[(.*)\]') from dual

出力:

    [REQ.UID] and username=[REQD.VP.UNAME]

必要な出力:

    [REQ.UID][REQD.VP.UNAME]

必要な出力を取得する方法を教えてください。

よろしくお願いします、 ビシャール

4

2 に答える 2

2

[] が 2 回出現すると仮定すると、次のようにすれば十分です。? の中に 。*?最後の ] をむさぼり食わないように貪欲でないことを意味します。

select
 regexp_replace('select userid,username from tablename where user_id=[REQ.UID] and username=[REQD.VP.UNAME]'
,'.*(\[.*?\]).*(\[.*?\]).*','\1\2')
from dual
;
于 2013-08-01T23:41:50.550 に答える