0

@文字列にシンボルが含まれていることを確認したい場合は、次のように書くことができます

REGEXP_LIKE(source_column,'@')

また

REGEXP_LIKE(source_column, '.*@.*')

これらの 2 つの形式の違いは何ですか? REGEXP_LIKE(source_column,'@')また、文字列に 以外の記号が含まれていても true を返すのはなぜ@ですか? たとえば、mail@mail.comおよびと一致します12@

当然のことながら、私には完全に一致する文字列'@'のように見え、「その記号を含む任意の文字列」と読みます。'.*@.*'

4

1 に答える 1

3

@これら 3 つはすべて同じように機能し、記号の前後に任意の数の文字がある場合に true を返します。

REGEXP_LIKE(source_column,'@')
REGEXP_LIKE(source_column,'.*@.*')
REGEXP_LIKE(source_column,'^.*@.*$', 'n')

'n'(複数行のデータがある場合、最後の例の match パラメータが必要です。そうしないと、.ワイルドカード文字が改行と一致せず、一致が失敗します。)

完全一致が必要な場合は、記号の直前と直後にある文字列の開始 ( ^) と文字列の終了( )を探します。$

REGEXP_LIKE(source_column,'^@$')
于 2016-04-13T12:55:02.357 に答える