5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

全角英数字を半角に変換【BigQuery】

Last updated at Posted at 2021-12-13

やりたいこと

BigQueryで全角英数字を半角に正規化する。

方法

NORMALIZE()関数を使う。

NORMALIZE(正規化したい文字列, 正規化のオプション)

正規化のオプション4つ

名前 説明
NFC 正規化形式 C 標準的な同値によって文字を分解し、再構成する。
NFKC 正規化形式 KC 互換性によって文字を分解し、標準的な同値によって再構成する。
NFD 正規化形式 D 標準的な同値によって文字を分解し、複数の結合文字を特定の順序で並べる。
NFKD 正規化形式 KD 互換性によって文字を分解し、複数の結合文字を特定の順序で並べる。
select 
    normalize("ABCABC漢字123123\u00ea", NFC) AS NFC,
    normalize("ABCABC漢字123123\u00ea", NFKC) AS NFKC,
    normalize("ABCABC漢字123123\u00ea", NFD) AS NFD,
    normalize("ABCABC漢字123123\u00ea", NFKD) AS NFKD

image.png

全角を半角にしたいよ…というときは2つ目の「NFKC正規化」を使えば良いらしいとのこと。

この4つの正規化手法の定義について調べてみましたが、、説明できるほどちゃんとは理解できませんでしたm(__)m こちらの記事がとてもわかりやすかったです。

参考にさせていただいた記事

ITIPS様 「BigQueryで全角半角変換など文字列の正規化する方法」
@fury00812様 「Unicode正規化」

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?