, 당신은 단지 자식 표현 매개 변수를 사용합니다 :
WITH t AS
(SELECT 'sip:[email protected]' c_str FROM dual
)
SELECT regexp_substr(c_str, '\+(\d*)@',1,1, NULL, 1) FROM t
패턴 매칭에 대한 설명 :
더하기 문자 인 +
을 이스케이프 처리합니다.
반복 숫자에 대한 문자 그룹화를 사용하십시오 ((\d*)
). 특히이 문자 그룹은 반복 숫자 \d
을 찾고 *
의 수량 기호가 0 개 이상인 패턴을 찾습니다. 문자 그룹은 괄호 안에 원하는 그룹을 캡슐화하여 식별합니다 (()
).
다른 매개 변수 설명 :
1, 1, NULL, 1
내가 문자열의 시작 위치에서 시작하여 첫번째 발생을 찾고 이러한 매개 변수 상태입니다. match 매개 변수를 NULL로 설정했습니다.
마지막 매개 변수 1은 일치하는 하위 식을 나타낼 수있는 11g 기능입니다. 따라서 일치하는 패턴에 하위 표현식을 하나만 사용하므로 숫자 1을 전달합니다.
이 하위 표현식을 참조하는 추가 예제는 Oracle 11g documentation에서 찾을 수 있습니다.
@Avinash Raj 너무 나쁘다 오라클은 미리보기를 구현하지 않았습니다. –