icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

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

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

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

 

執筆してくれたメンター

寺谷文宏 (Teratani Fumihiro)

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

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する