2017-12-25 22 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文の中で、次の試してみました'(?<!^ \ s *)[A-Za-z0-9](?!\ s * $)' –

+0

構文エラーが無効です。私は(?!^ \ s *)[A-Za-z0-9](?!\ s * $)を試してみて、ほとんど正しい結果に導いています。****@***.***j – Denis

+0

可変幅lookbehindがサポートされていない場合は使用できません。正規表現の味は何ですか? '\ G.'パターンは機能しますか? –

答えて

0

デニスは、私はそれが

+0

それだけです!私はハナがトリム機能を提供することを忘れる。あなたのアドバイスをありがとう、Eralper。 – Denis

関連する問題