我有一個正則表達式,在Java中運行良好,但在Oracle中不起作用。oracle負面展望正則表達式不起作用
它尋找<a href="abcd" etc etc xyz >
標籤,其中xyz
不在元素塊中。
<a href="abcd" etc etc xyz > = not match
<a href="abcd" etc etc > = match
至REGx:(<[a][\s]+[^>]*[href]="[^>](?:(?!xyz).)*?)(>)
,但同樣的事情在甲骨文
select I from atable
where regexp_like (column, '(<[a][\s]+[^>]*[href]="[^>](?:(?!xyz).)*?)(>)')
任何想法返回null?
讓我澄清一下這個問題。其實我需要做到這一點。 比方說,我們有一個包含html語法數據的文本列'datacolumn'。我需要找到字符串
<a href="abcd" etc etc >
,並替換成
<a href="abcd" etc etc xyz>
如果已經有數據列串,我不應該插入另一XYZ,而只是把它。因此,可以說,如果列有數據這樣
<a href="abcd" etc etc > asdf </a> etc etc <a href="efgh" etc etc xyz>
那麼我想這已經更換爲
<a href="abcd" etc etc xyz> asdf </a> etc etc <a href="efgh" etc etc xyz>
如果我不我提前結束了插入這樣的雙重XYZ使用負的樣子
<a href="abcd" etc etc xyz> asdf </a> etc etc <a href="efgh" etc etc xyz xyz>
我使用
REGEXP_REPLACE(datacolunm,'(<[a][\s]+[^>]*[href]="[^>](?:(?!xyz).)*?)(>)')','\1 xyz \3')
但是由於不支持負向預測,或者我的reqex與oracle不兼容,所以我沒有找到任何匹配。這在Java中工作。
我不認爲環視斷言在Oracle支持。 – MElliott