PL/SQL 개발자 찾기 및 교체에서 정규식 모드를 사용할 때 교체 할 일치 된 객체에 액세스하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/1614478

  •  06-07-2019
  •  | 
  •  

문제

교체하고 싶은 쿼리가 있습니다

avg(j2)

~와 함께

avg(case when j2 <> 0 then j2 else 0 end)

위는 구체적인 예이지만 패턴은 모든 교체품과 동일합니다. 항상 숫자가 0이 아닌지 확인하는 CASE 문으로 대체 해야하는 숫자가 항상 뒤 따릅니다.

찾기 위해 다음을 시도했습니다.

avg(\(\w\d\))

그리고 찾기는 작동합니다. 이제 교체를하고 싶습니다.

avg(case when \1 <> 0 then \1 else 0 end)

그러나 경기에서 캡처 된 텍스트가 아닌 문자 그대로 1을 넣습니다. 나는 시도했다 \\1 & $1 또한 문자 그대로 모두가 필요합니다. 누구든지 캡처 된 텍스트를 교체하기 위해 올바른 구문이 무엇인지 말해 줄 수 있습니까? 이것은 지원 되었습니까?

감사,

애쉬

도움이 되었습니까?

해결책

PL/SQL 개발자 IDE가 그룹 캡처를 지원하는지 확실하지 않습니다. 최근 버전은 Regex 기반 찾기 및 교체를 지원하는 것으로 보입니다. 그룹 캡처가 작동하는지 확인하는 소스를 찾을 수 없습니다. 코드를 메모장 ++와 같은 것으로 붙여 넣고 같은 동정인을 시도해보십시오. 작동해야합니다. 결과를 IDE에 다시 붙여 넣고 거기에서 계속 할 수 있습니다 ...

다른 팁

사용하여 교체 할 수 있습니다 $ 그리고 숫자와 같은$0 또는 $1 등. 아래 예제를 참조하십시오

find: TABLE (.*\..*) IS
replace: COLUMN $1 IS

http://regexr.com/3gm6c

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top