Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaの正規表現を使って文字列から各英単語を抽出する方法

Javaでテキスト処理を行う際、「文字列に含まれる単語だけを取り出したい」という場面はよくあります。そんなときに役立つのが正規表現です。

正規表現 "[a-zA-Z]+" は、「1文字以上の連続する英字(アルファベット)」にマッチするパターンです。このパターンを利用することで、入力文字列から各英単語を簡単に抽出できます。

単語を抽出する手順

  1. パターンのコンパイル: Patternクラスのcompile()メソッドに正規表現 "[a-zA-Z]+" を渡してコンパイルし、Patternオブジェクトを作成します。
  2. Matcherオブジェクトの取得: Patternクラスのmatcher()メソッドに、対象となる入力文字列を引数として渡し、Matcherオブジェクトを取得します。
  3. マッチ結果の取得: find()メソッドでマッチ位置を順次走査しながら、group()メソッドを呼び出すことで、マッチした各単語を取り出します。

サンプルコード

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EachWordExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter sample text: ");
        String data = sc.nextLine();

        String regex = "[a-zA-Z]+";

        // Patternオブジェクトの作成
        Pattern pattern = Pattern.compile(regex);

        // Matcherオブジェクトの作成
        Matcher matcher = pattern.matcher(data);

        System.out.println("Words in the given String: ");
        while(matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

実行結果

Enter sample text:
Hello this is a sample text
Words in the given String:
Hello
this
is
a
sample
text

コードのポイント

  • find() メソッドは、入力文字列の中で次にパターンにマッチする部分があるかどうかを判定します。whileループと組み合わせることで、すべての単語を順番に処理できます。
  • group() メソッドは、直前のマッチで実際に一致した文字列を返します。
  • このパターンは英字のみに対応しているため、数字や記号、句読点は自動的に除外されます。例えば "Hello, world!" のような文字列からも、カンマや感嘆符を除いた "Hello" と "world" だけを抽出できます。

まとめ

Pattern.compile() で正規表現を準備し、matcher() で対象文字列を設定、find() と group() を組み合わせて走査する――この3ステップだけで、文字列から英単語を抽出できます。ログ解析やテキスト処理など、さまざまな場面で応用できる基本的なテクニックなので、ぜひ覚えておきましょう。

  1. 【Python入門】正規表現でテキストから数値を抽出する方法をわかりやすく解説

    Pythonでテキスト処理を行う際、「文章の中から数字だけを取り出したい」という場面は非常によくあります。そんなときに活躍するのが、標準ライブラリの re モジュールと正規表現です。この記事では、目的別に使える抽出パターンをサンプルコード付きで解説します。 数字を1文字ずつ個別に抽出する テキスト内のすべての数字を1桁ずつバラバラに抽出したい場合は、正規表現パターン \d を使用します。\d は「半角数字1文字」にマッチするメタ文字です。 サンプルコード import re s = 12345 abcdf 67 result = re.findall(r\d, s) print(result

  2. Javaの正規表現で文字列から数値を抽出する方法

    Javaの正規表現(Regular Expression)を使えば、文字列の中から数値だけを簡単に取り出すことができます。この記事では、実際のコード例とともに、さまざまなパターンでの数値抽出の方法を解説します。文字列を解析し、必要な情報を抜き出すスキルは、テスターにとって欠かせない能力の一つです。特にAPIテストでは、JSONやXML形式のレスポンスを解析する場面が多く、正規表現の知識が大いに役立ちます。以下では、Javaの正規表現を使って文字列から数字・数値を抽出する具体的な例を紹介します。文字列からすべての数値を抽出するimport java.util.regex.Matcher; imp