Java에서는 제대로 작동하지만 Oracle에서는 작동하지 않는 정규식이 있습니다.oracle negative look ahead 정규 표현식이 작동하지 않음
요소 블록에 xyz
이없는 <a href="abcd" etc etc 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 >
을 발견하고, 내가 다른 XYZ를 삽입하지만, 단순히 그것을 떠나지해야 이미 데이터 열 문자열이있는 경우
<a href="abcd" etc etc xyz>
와 그것을 교체해야합니다. 그래서 열이
<a href="abcd" etc etc > 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>
로 교체 한하고 싶은 말은 할 수 있습니다
<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')
하지만 negative lookahead가 지원되지 않거나 reqex가 oracle과 호환되지 않기 때문에 일치하는 항목을 찾을 수 없습니다. Java에서 작동합니다.
내가 lookaround 주장은 오라클에서 지원됩니다 생각하지 않습니다. – MElliott