「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

Javaで文字列の整形・クリーニングを行う際、正規表現(regex)を使って不要な文字をまとめて削除・置換するケースは非常に多いです。
本記事では、String#replaceAll() を中心に、よく使うパターン別にサンプルコードをまとめて紹介します。


■ 正規表現で削除・置換する基本構文

  • 削除したいときは空文字 "" を指定

  • Java の replaceAll() は正規表現で動作する(replace() は文字列完全一致)


■ 数字以外を全部削除する

ユーザー入力チェックなどで定番のパターン。

[^0-9] → 数字以外を意味する否定クラス。


■ 英数字以外を削除する

記号や日本語をすべて除去したい場合に便利。


■ 日本語以外を削除する(全角ひらがな・カタカナ・漢字)


■ 空白(スペース)をまとめて削除する

  • 半角スペース

  • 全角スペース

  • タブ

全部まとめて消したい場合:

1つ以上の空白・改行をすべて消す。


■ 改行だけ削除したい


■ 特定記号だけ削除したい(例:ハイフン・カンマなど)

複数の記号をまとめて削除できる。


■ 複数パターンを一括置換(例:() と [] を削除)

正規表現では ( ) [ ] はエスケープが必要。


■ 文字の繰り返しを1つにまとめる(連続スペースを1つへ)

2つ以上の空白1スペースに正規化


■ 電話番号を正規化(ハイフン削除など)


■ メールアドレスの不要文字を除外(制限付き)


■ 全角→半角/半角→全角変換も合わせて使う

正規表現とは別だが、入力クリーニングで頻繁に使うので補足。

全角 → 半角

半角 → 全角(ひらがな・アルファベットなど)


■ replaceAll() を使う際の注意点

● メタ文字はエスケープが必要

( ) [ ] { } . * + ? | \
これらは正規表現の特殊文字。

● 速度が必要な場合は Pattern を使う

大量の文字列を繰り返し処理する場合は、正規表現を事前コンパイルする。


■ よく使う削除・置換パターンまとめ(チートシート)

目的正規表現
数字以外削除[^0-9]abc123→123
英数字以外削除[^A-Za-z0-9]A1$#→A1
空白削除\\s+a b→ab
改行削除`\r\n\r
記号削除[!-/:-@[-{-~]`記号全削除
連続空白を1つに\\s{2,}a b→"a b"
()[]削除[\\(\\)\\[\\]]A(B)[C]→"ABC"

■ まとめ

Javaの正規表現は、ユーザー入力の整形やデータクレンジングに非常に強力です。
特に replaceAll() を使うことで、不要な文字の削除・置換を一括で処理できます。

  • 数字だけ取り出す

  • 記号を除去

  • 連続スペースを1つに整形

  • 記号類の一括置換

など、実務でも頻繁に出てくる処理をシンプルに書けるので、ぜひ活用してください。

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x