Oracle PL/SQL의 정규 발현 캡처 그룹
-
05-07-2019 - |
문제
나는 자유 형식 텍스트를보다 구조화 된 것으로 바꾸려고 노력하고 있습니다. 사용 가능한 데이터의 대다수 (최소 허용 가능한 한계보다 훨씬 높은)와 일치하는 복잡한 패턴이 있으며,이를 사용하여 텍스트 별 문자 별 문자를 구문 분석하는 대신 데이터를 구성하는 데 도움이됩니다. 내가 방금 겪는 문제는 Oracle이 캡처 그룹을 처리하는 방법이없는 것 같다는 것입니다 (어떻게 든 놓친 경우가 아니라면).
예를 들어, 내 표현에는 다음과 같은 이름의 캡처 그룹이 있습니다. ((?<runit_ID>\d+)-)
그리고 (STAT_N|STTN|STAT|STN) ?(?<STAT>\w+)
. 코드베이스는 전적으로 PL/SQL로 작성되므로 C# 또는 다른 것을 사용하여 캡처 그룹을 이름으로 언급 할 수 없습니다. 사람들은 PL/SQL 에서이 문제를 어떻게 해결합니까?
해결책
Oracle 10G 이상을 사용하고 있다고 가정하면 regexp_replace를 뒷면 reference와 함께 사용할 수 있습니다.
예제를 참조하십시오 regexp_replace 용 Oracle Docs 그리고 이것에서 정기-표현식의 기사.
제휴하지 않습니다 StackOverflow