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

소린 포스텔 니쿠

누구든지 (정규식 일치에 대한 광범위한 경험을 가진) Oracle 12에서 다음 쿼리가 예상치 못한 결과를 반환하는 이유를 설명해 주시겠습니까?

select regexp_substr('My email: [email protected]', '[^@:space:]+@[^@:space:]+') 
from dual;

예상 결과 : [email protected]

실제 결과 : t @ t

다른 예시:

select regexp_substr('Beneficiary email: [email protected]', '[^@:space:]+@[^@:space:]+') 
from dual;

예상 결과 : [email protected]

실제 결과 : ry1 @ gm

편집 : 두 번 확인했는데 이것은 Oracle SQL과 관련이 없지만 동일한 동작이 모든 정규식 엔진에 적용됩니다. 정규식을 [^ : space :] + @ [^ : space :] +로 단순화하더라도 결과는 동일합니다. @ 기호 앞뒤의 모든 비 공백 문자와 일치하지 않는 이유를 알고 싶습니다. 그리고 왜 때로는 한 문자와 일치하고 다른 시간에는 2 개 또는 3 개 이상의 문자와 일치하지만 전부는 아닙니다.

Gary_W

사용하려는 POSIX 단축키가 올바르지 않습니다. 주위에 대괄호가 필요합니다.

SELECT REGEXP_SUBSTR('Beneficiary email: [email protected]', '[^@[:space:]]+@[^@[:space:]]+') 
FROM dual;

또는 더 간단합니다. '@'만 확인하고 이메일 주소가 항상 마지막 공백 뒤의 문자열 끝에 있다고 가정합니다.

WITH tbl(str) AS (
  SELECT 'My email: [email protected]' FROM dual UNION ALL
  SELECT 'Beneficiary email: [email protected]' FROM dual
)
SELECT REGEXP_REPLACE(str, '.* (.*@.*)', '\1')
from tbl
;

참고 : REGEXP_REPLACE()일치하는 항목이 없으면 원래 문자열 REGEXP_SUBSTR()을 반환하고 NULL을 반환합니다. 이를 염두에두고 그에 따라 일치하는 항목이없는 경우 처리하십시오. 항상 예상치 못한 것을 기대하십시오!

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

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

이 IF, OR, AND 함수가 TRUE를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

내 구문 분석 함수가 예상되는 모든 토큰을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

MongoDB / Mongoose가 null 또는 정의되지 않은 인수가있는 쿼리를 찾아 모든 문서를 반환하는 이유는 무엇입니까?

분류에서Dev

REGEXP_SUBSTR 또는 SUBSTR 함수를 사용하여 Oracle SQL에서 "시작할 첫 번째 _ (밑줄) 이후"및 "종료 할 두 번째 _ (밑줄)"에서 하위 문자열 찾기

분류에서Dev

findAll ()이 모델의 모든 객체를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

이 함수 반환이 Java에서 예상 결과를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

유형 별칭과 일치하지 않는 함수를 반환해도 오류가 발생하지 않습니다. 이유는 무엇입니까?

분류에서Dev

elasticsearch 집계-일치하는 모든 쿼리가 더 구체적인 쿼리 인 키를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

내가 만든 사용자 지정 함수가 빈 값을 반환하는 이유는 무엇입니까? -DFS

분류에서Dev

파이썬의 모든 것이 발견 된 객체를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

co_varnames가 모든 변수 이름 목록을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

regexp_substr을 사용하여 두 단어 사이의 모든 문자를 캡처합니다 (문자열의 앞과 끝 포함)

분류에서Dev

내 함수가 문자열을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

재귀 JavaScript 함수가 문자열을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

SQL이 일치하지 않는 이유는 무엇입니까?

분류에서Dev

이 함수가 정의되지 않은 이유를 반환하는 이유는 무엇입니까?

분류에서Dev

mongo가 모든 필드를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

함수가 var`db`를 다음 함수로 반환하지 않는 이유는 무엇입니까?

분류에서Dev

함수가 정의되지 않은 이유를 반환하는 이유는 무엇입니까?

분류에서Dev

내 함수가 만든 반환 배열을 에코하지 않는 이유는 무엇입니까?

분류에서Dev

이 함수가 문자열 s의 모든 부분 문자열을 인쇄하지 않는 이유는 무엇입니까?

분류에서Dev

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

분류에서Dev

mypy가 TypeVar와 호환되지 않는 유형을 포함하는 일반 유형 변수를 무시하는 이유는 무엇입니까?

분류에서Dev

이 함수가 값을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

내 함수가 예상 한 데이터를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

선택한 모든 QGraphicsItem이 mouseMove 이벤트를 수신하지 않는 이유는 무엇입니까?

분류에서Dev

함수가 값을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

함수에서 문자열을 반환하지만 null을 인쇄하는 이유는 무엇입니까?

Related 관련 기사

  1. 1

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

  2. 2

    이 IF, OR, AND 함수가 TRUE를 반환하지 않는 이유는 무엇입니까?

  3. 3

    내 구문 분석 함수가 예상되는 모든 토큰을 반환하지 않는 이유는 무엇입니까?

  4. 4

    MongoDB / Mongoose가 null 또는 정의되지 않은 인수가있는 쿼리를 찾아 모든 문서를 반환하는 이유는 무엇입니까?

  5. 5

    REGEXP_SUBSTR 또는 SUBSTR 함수를 사용하여 Oracle SQL에서 "시작할 첫 번째 _ (밑줄) 이후"및 "종료 할 두 번째 _ (밑줄)"에서 하위 문자열 찾기

  6. 6

    findAll ()이 모델의 모든 객체를 반환하지 않는 이유는 무엇입니까?

  7. 7

    이 함수 반환이 Java에서 예상 결과를 반환하지 않는 이유는 무엇입니까?

  8. 8

    유형 별칭과 일치하지 않는 함수를 반환해도 오류가 발생하지 않습니다. 이유는 무엇입니까?

  9. 9

    elasticsearch 집계-일치하는 모든 쿼리가 더 구체적인 쿼리 인 키를 반환하지 않는 이유는 무엇입니까?

  10. 10

    내가 만든 사용자 지정 함수가 빈 값을 반환하는 이유는 무엇입니까? -DFS

  11. 11

    파이썬의 모든 것이 발견 된 객체를 반환하지 않는 이유는 무엇입니까?

  12. 12

    co_varnames가 모든 변수 이름 목록을 반환하지 않는 이유는 무엇입니까?

  13. 13

    regexp_substr을 사용하여 두 단어 사이의 모든 문자를 캡처합니다 (문자열의 앞과 끝 포함)

  14. 14

    내 함수가 문자열을 반환하지 않는 이유는 무엇입니까?

  15. 15

    재귀 JavaScript 함수가 문자열을 반환하지 않는 이유는 무엇입니까?

  16. 16

    SQL이 일치하지 않는 이유는 무엇입니까?

  17. 17

    이 함수가 정의되지 않은 이유를 반환하는 이유는 무엇입니까?

  18. 18

    mongo가 모든 필드를 반환하지 않는 이유는 무엇입니까?

  19. 19

    함수가 var`db`를 다음 함수로 반환하지 않는 이유는 무엇입니까?

  20. 20

    함수가 정의되지 않은 이유를 반환하는 이유는 무엇입니까?

  21. 21

    내 함수가 만든 반환 배열을 에코하지 않는 이유는 무엇입니까?

  22. 22

    이 함수가 문자열 s의 모든 부분 문자열을 인쇄하지 않는 이유는 무엇입니까?

  23. 23

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

  24. 24

    mypy가 TypeVar와 호환되지 않는 유형을 포함하는 일반 유형 변수를 무시하는 이유는 무엇입니까?

  25. 25

    이 함수가 값을 반환하지 않는 이유는 무엇입니까?

  26. 26

    내 함수가 예상 한 데이터를 반환하지 않는 이유는 무엇입니까?

  27. 27

    선택한 모든 QGraphicsItem이 mouseMove 이벤트를 수신하지 않는 이유는 무엇입니까?

  28. 28

    함수가 값을 반환하지 않는 이유는 무엇입니까?

  29. 29

    함수에서 문자열을 반환하지만 null을 인쇄하는 이유는 무엇입니까?

뜨겁다태그

보관