Oracle REGEXP_SUBSTR이 내 패턴으로 작동하지 않습니다.

sameh.q

다음 쿼리가 있습니다.

SELECT DISTINCT A.REZ FROM
(
  SELECT REGEXP_SUBSTR(P_EQUATION, '([A-Z|a-z|0-9]+)\{([0-9|\+|\-| |\*|\/\)\(]+)\}#([A-Z|a-z|0-9|_]+)#',1, LEVEL) AS REZ FROM DUAL
  CONNECT BY REGEXP_SUBSTR(P_EQUATION, '([A-Z|a-z|0-9]+)\{([0-9|\+|\-| |\*|\/\)\(]+)\}#([A-Z|a-z|0-9|_]+)#',1, LEVEL) IS NOT NULL
) A;

다음 입력을 제공 한 경우 :

P_EQUATION := 'A123{(01+02)*2}#ACCOUNT_BALANCE# + B123{(20+10)/20}#ACCOUNT_BALANCE#';

다음을 제공합니다.

REZ
-------------------------------------
A123{(01+02)*2}#ACCOUNT_BALANCE#
B123{(20+10)/20}#ACCOUNT_BALANCE#

그러나 마이너스 기호가 패턴에 포함되어 있지만 중괄호 안에 추가하면 더 이상 텍스트를 일치하는 것으로 인식하지 않습니다!

전의:

P_EQUATION := 'A123{(01-02)*2}#ACCOUNT_BALANCE#';

나는 이것에 대한 해결책을 찾을 수 없습니다. 특히 마이너스 기호 만 일치 시키려고 할 때 작동합니다. 숫자 만 일치하려고하면 작동합니다.

명예

Oracle은 POSIX 스타일 정규식을 사용하는 것으로 보입니다 : https://docs.oracle.com/cd/B12037_01/server.101/b10759/ap_posix001.htm#i690819

백 슬래시는 POSIX 대괄호 표현식의 메타 문자가 아닙니다. 따라서 POSIX에서 정규 표현식 [\d]은 a \또는 a 와 일치합니다 .d

> http://www.regular-expressions.info/posixbrackets.html

백 슬래시는 아마도 그것을 엉망으로 만들고 필요하지 않습니다. 또한 그것이 |char 클래스 내부의 리터럴 이라는 것을 알지 못합니다 (주석에서도 지적했습니다). 이 문제를 해결 -하고를 문자 클래스의 시작으로 이동하여 리터럴로 해석 할 수 있습니다.

여기 있습니다 :

([A-Za-z0-9]+)\{([-0-9+ */)(]+)\}#([A-Za-z0-9_]+)#

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다debugcn@gmail.com 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

패턴의 무작위 발생에 대한 oracle regexp_substr

분류에서Dev

내 MVVM 패턴이 작동하지 않습니다 ... 왜?

분류에서Dev

Oracle SQL 내부 선택이 작동하지 않습니다.

분류에서Dev

preg_match의 내 패턴이 원하는대로 작동하지 않습니다.

분류에서Dev

Oracle NOT IN이 작동하지 않습니다.

분류에서Dev

Oracle SQL 함수 regexp_substr이 일치하는 모든 문자를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

내 탐색이 제대로 작동하지 않습니다.

분류에서Dev

내 'if'문이 제대로 작동하지 않습니다.

분류에서Dev

내 strcpy 구현이 제대로 작동하지 않습니다.

분류에서Dev

내 js 팝업이 동적으로 작동하지 않습니다.

분류에서Dev

대괄호 사이의 숫자와 일치하는 ORACLE REGEXP_SUBSTR

분류에서Dev

Oracle SQL : Regexp_substr

분류에서Dev

ToolBarOverflow 패널 내의 팝업이 제대로 작동하지 않습니다.

분류에서Dev

Memento 패턴이 제대로 작동하지 않습니다

분류에서Dev

PNG로 연필 내보내기 페이지가 작동하지 않습니다.

분류에서Dev

Oracle은 oracle regexp_substr과 함께 정규식을 사용하여 json 필드를 추출합니다.

분류에서Dev

링크로 이동하는 내 버튼이 작동하지 않습니다.

분류에서Dev

내 수업 내 검색 기능이 제대로 작동하지 않습니다.

분류에서Dev

Oracle NLS_DATE_FORMAT이 제대로 작동하지 않습니다.

분류에서Dev

Oracle 외부 조인이 예상대로 작동하지 않습니다.

분류에서Dev

내 브래킷 하단 패널이 작동하지 않습니다.

분류에서Dev

Oracle SQL regexp_substr 번호 추출 동작

분류에서Dev

Oracle SQL regexp_substr 번호 추출 동작

분류에서Dev

내 패턴에서 목록 반전이 작동하지 않습니까?

분류에서Dev

내가 원하는대로 기능이 작동하지 않습니다. (c)

분류에서Dev

Gitignore 파일이 내가 원하는대로 작동하지 않습니다.

분류에서Dev

내 경우에는 작곡가 이름 간격 "다음으로 사용"이 작동하지 않습니다.

분류에서Dev

substr ()이 예상대로 작동하지 않습니다.

분류에서Dev

"awk with if / substr"이 예상대로 작동하지 않았습니다.

Related 관련 기사

  1. 1

    패턴의 무작위 발생에 대한 oracle regexp_substr

  2. 2

    내 MVVM 패턴이 작동하지 않습니다 ... 왜?

  3. 3

    Oracle SQL 내부 선택이 작동하지 않습니다.

  4. 4

    preg_match의 내 패턴이 원하는대로 작동하지 않습니다.

  5. 5

    Oracle NOT IN이 작동하지 않습니다.

  6. 6

    Oracle SQL 함수 regexp_substr이 일치하는 모든 문자를 반환하지 않는 이유는 무엇입니까?

  7. 7

    내 탐색이 제대로 작동하지 않습니다.

  8. 8

    내 'if'문이 제대로 작동하지 않습니다.

  9. 9

    내 strcpy 구현이 제대로 작동하지 않습니다.

  10. 10

    내 js 팝업이 동적으로 작동하지 않습니다.

  11. 11

    대괄호 사이의 숫자와 일치하는 ORACLE REGEXP_SUBSTR

  12. 12

    Oracle SQL : Regexp_substr

  13. 13

    ToolBarOverflow 패널 내의 팝업이 제대로 작동하지 않습니다.

  14. 14

    Memento 패턴이 제대로 작동하지 않습니다

  15. 15

    PNG로 연필 내보내기 페이지가 작동하지 않습니다.

  16. 16

    Oracle은 oracle regexp_substr과 함께 정규식을 사용하여 json 필드를 추출합니다.

  17. 17

    링크로 이동하는 내 버튼이 작동하지 않습니다.

  18. 18

    내 수업 내 검색 기능이 제대로 작동하지 않습니다.

  19. 19

    Oracle NLS_DATE_FORMAT이 제대로 작동하지 않습니다.

  20. 20

    Oracle 외부 조인이 예상대로 작동하지 않습니다.

  21. 21

    내 브래킷 하단 패널이 작동하지 않습니다.

  22. 22

    Oracle SQL regexp_substr 번호 추출 동작

  23. 23

    Oracle SQL regexp_substr 번호 추출 동작

  24. 24

    내 패턴에서 목록 반전이 작동하지 않습니까?

  25. 25

    내가 원하는대로 기능이 작동하지 않습니다. (c)

  26. 26

    Gitignore 파일이 내가 원하는대로 작동하지 않습니다.

  27. 27

    내 경우에는 작곡가 이름 간격 "다음으로 사용"이 작동하지 않습니다.

  28. 28

    substr ()이 예상대로 작동하지 않습니다.

  29. 29

    "awk with if / substr"이 예상대로 작동하지 않았습니다.

뜨겁다태그

보관