Javaで正規表現を使ってアルファベット、半角英数字を判定する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaで正規表現を使ってアルファベット、半角英数字を判定する方法について解説しています。正規表現を使うと表記の揺れに対応した検索、判定が行えるようになります。正規表現でアルファベット、半角英数字のチェックを行う際の基本の書き方を学びましょう。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Javaで正規表現を使ってアルファベット、半角英数字を判定する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まるでしょう

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

正規表現を使ってアルファベット、半角英数字を判定する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

正規表現の使い方

Javaでは、文字のパターンをひとまとめにした正規表現を扱うためのライブラリが下記のように用意されています。

java.util.regex.Patternは、正規表現文字列(パターン)を扱うためのクラスです。

java.util.regex.Matcherは、検査対象文字列がパターンに合致するかどうか判定するためのクラスです。

この2つのクラスを使うことによって、正規表現を利用したJavaでのプログラミングが可能となります。

 

アルファベットを判定する方法

アルファベットをjavaで判定するための正規表現パターンは、以下のコードです。

^[A-Za-z]+$

アルファベットには大文字と小文字が存在するため、正規表現パターンは大文字と小文字、どちらのパターンであってもいいように考慮して作成します。

このコードでは、パターンに検査対象となる文字列が全て合致すれば、その検査対象は全てアルファベットであるといえるでしょう。

 

[PR] Javaで挫折しない学習方法を動画で公開中

半角英数字を判定する方法

半角英数字をjavaで判定するための正規表現パターンは、以下となります。

^[A-Za-z0-9]+$

このコードは、実際のシステム開発においてもWEBシステムのログインID入力値チェックなどでよく使われるため、覚えておきましょう。

 

実際に書いてみよう

2つの正規表現を使って、4つのチェック処理を実行するプログラム例です。

Patternクラスを使う際は、毎回コンパイル処理が必要になるため、PatternクラスでコンパイルしてMatcherでマッチするか確認する一連の処理を別メソッドに定義し、4回繰り返し使用しました。

今回は、実際の現場開発業務で使えるプログラムを用意したので、この際に理解してしまいましょう。

public class RegexTest {
  public static void main(String[] args) {
    // 1.検査対象文字列を用意する
    String alphabetStr = "TechAchademy" ; // アルファベットのみ
    String loginIdStrOk = "2020TechAchademy" ; // 半角英数字
    String loginIdStrNg = "Techアカデミー" ; // 全角カタカナが混じっているNGパターン
 
    // 2. 正規表現パターンを用意する 
    String regex_Alphabet = "^[A-Za-z]+$" ; // アルファベットのみ
    String regex_AlphaNum = "^[A-Za-z0-9]+$" ; // 半角英数字のみ 
 
    // 3.  別途定義したcheckLogicメソッドでチェック処理を実施する
 
    // 4 何通りかチェック処理を試して結果を見る
    System.out.println("アルファベットチェック1:" + checkLogic(regex_Alphabet, alphabetStr));
    System.out.println("アルファベットチェック2:" + checkLogic(regex_Alphabet, loginIdStrOk));
    System.out.println("半角英数字チェック1:" + checkLogic(regex_AlphaNum, loginIdStrOk));
    System.out.println("半角英数字チェック2:" + checkLogic(regex_AlphaNum, loginIdStrNg));
  }
 
  /**
  * 指定した正規表現で文字列のチェックを実施するためのメソッド。
  * @param regex チェック処理に使う正規表現パターン
  * @param target 検査対象文字列
  * @return result 検査対象が正規表現にマッチする場合はtrue、それ以外はfalse
  */
  public static boolean checkLogic(String regex, String target) {
    boolean result = true;
    if( target == null || target.isEmpty() ) return false ;
    // 3. 引数に指定した正規表現regexがtargetにマッチするか確認する
    Pattern p1 = Pattern.compile(regex); // 正規表現パターンの読み込み
    Matcher m1 = p1.matcher(target); // パターンと検査対象文字列の照合
    result = m1.matches(); // 照合結果をtrueかfalseで取得
    return result;
  }
}

実行結果

アルファベットチェック1:true
アルファベットチェック2:false
半角英数字チェック1:true
半角英数字チェック2:false

 

まとめ

正規表現を使うことで、アルファベットや半角英数字のチェックを自動実行できるプログラムを作成することができました。

実際のWEBアプリケーションでは、ログインIDチェックなどに使うことが可能です。

上手く活用してJavaのプログラミングをスキルアップさせましょう。

 

執筆してくれたメンター

寺谷文宏 (Teratani Fumihiro)

WEBアプリケーションエンジニアとして数多くのプロジェクトを経験し、
フロントエンドからサーバーサイドまで総合的な開発を得意としています。

TechAchademyではフロントエンド、Javaコースを担当。

 

大石ゆかり

Javaで正規表現を使ってアルファベット、半角英数字を判定する方法がよく分かったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。