2017-12-25 3 views
0

전자 메일은 char 데이터 유형의 SAP Hana 테이블 열에 저장되어 있습니다. 첫 번째와 마지막 공백이 아닌 문자를 제외한 '*'문자로 모든 문자와 숫자를 대체해야합니다. regex_replace ('[email protected]', '(?! ^) [A-Za-z0-9] (?! $)', '*') 잘 작동하고 얻을 수 있습니다. 가면을 쓴 전자 메일 'a***@***.**j'. 이메일 시작 및/또는 끝 부분에 공백이 있으면 잘못됩니다. 예를 들어 전자 메일 문자열이 '[email protected]'인 경우 결과는 '****@***.****'인 반면 'a***@***.**'이 필요합니다. j ' 불행히도 정규식을 시작하기 전에 이메일을자를 수 없습니다.마지막 및 첫 번째 공백 이외의 모든 문자를 바꾸는 정규식

+1

시도 "a***@***.**j"선행과 후행 공백 및 반품을 제거

select REPLACE_REGEXPR('(?!^)[\sA-Za-z0-9](?!$)' IN trim(' [email protected] ') WITH '*') from dummy; 

Replace_Regexp 기능이있는 SELECT 문에 다음과 같은 시도 '(?

+0

시도했으나 구문 오류가 잘못되었습니다. 나는 (?!^\ s *) [A-Za-z0-9] (?! \ s * $)를 시도했고 거의 정확한 결과를 얻었다. ****@***.***j – Denis

+0

이 방법 가변 너비 lookbehind가 지원되지 않으면 사용할 수 없습니다. 정규식의 맛은 무엇입니까? '\ G.' 패턴이 작동합니까? –

답변

0

데니스, 나는 그것은

+0

그게 다야! 하나가 손질 기능을 제공한다는 사실을 잊어 버렸습니다. 네 조언에 고마워, Eralper. – Denis

관련 문제