Java正規表現の文字クラス入門:文字セットからマッチングする方法
Javaの正規表現における文字クラスは、角括弧「[ ]」を使って定義します。文字クラスは、指定された文字の集合(セット)の中から1文字にマッチします。
例えば、正規表現 [abc] は「a」「b」「c」のいずれか1文字にマッチします。同様に、[a-z] は小文字のaからzまでの範囲に含まれる任意の1文字にマッチします。
文字クラスの否定(^)
また、角括弧内の先頭に「^」を付けると否定を意味し、[^a-z] のように書くことで「小文字アルファベット以外の文字」にマッチさせることができます。この機能を使うと、特定の文字種以外を簡単に抽出・カウントできます。
例1:小文字アルファベットの出現回数を数える
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("テキストを入力してください: ");
String input = sc.nextLine();
String regex = "[a-z]";
// パターンオブジェクトを作成
Pattern pattern = Pattern.compile(regex);
// 文字列に対してコンパイル済みパターンでマッチング
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("a〜zに該当する文字数: " + count);
}
}実行結果
テキストを入力してください: sample data 1234$ a〜zに該当する文字数: 10
この例では、入力された文字列の中から小文字アルファベット(a〜z)だけを検出し、その出現回数を出力しています。「sample data 1234$」の場合、数字や記号は除外され、10個の英字がカウントされます。
例2:アルファベット以外の文字を数える
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("テキストを入力してください: ");
String input = sc.nextLine();
String regex = "[^a-z]";
// パターンオブジェクトを作成
Pattern pattern = Pattern.compile(regex);
// 文字列に対してコンパイル済みパターンでマッチング
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("アルファベット以外の文字数: " + count);
}
}実行結果
テキストを入力してください: sample data 1234$ アルファベット以外の文字数: 7
こちらの例では否定の文字クラス [^a-z] を使用しています。空白や数字、記号など、小文字アルファベット以外のすべての文字がカウント対象となり、「sample data 1234$」では7個が該当します。
まとめ
文字クラスを使いこなすと、特定の文字種だけを抽出したり除外したりする処理を簡潔に記述できます。[0-9](数字)、[A-Z](大文字)、[a-zA-Z0-9](英数字)のように範囲を組み合わせることも可能なので、バリデーションやデータクレンジングなど、さまざまな場面で活用できます。
-
Javaの正規表現を使って文字列からHTMLタグを抽出する方法
Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを検索するためのさまざまなクラスが用意されています。 このパッケージのPatternクラスは、正規表現をコンパイルした結果を表すクラスです。文字列と正規表現のマッチングを行うために、次の2つのメソッドが提供されています。 compile() − 正規表現を表す文字列を引数として受け取り、Patternクラスのオブジェクトを返します。 matcher() − 対象となる文字列を受け取り、その文字列を現在のPatternオブジェクトが表すパターンと照合するためのMatcherオブジェクトを生成します。
-
Javaの正規表現で文字列から数値を抽出する方法
Javaの正規表現(Regular Expression)を使えば、文字列の中から数値だけを簡単に取り出すことができます。この記事では、実際のコード例とともに、さまざまなパターンでの数値抽出の方法を解説します。文字列を解析し、必要な情報を抜き出すスキルは、テスターにとって欠かせない能力の一つです。特にAPIテストでは、JSONやXML形式のレスポンスを解析する場面が多く、正規表現の知識が大いに役立ちます。以下では、Javaの正規表現を使って文字列から数字・数値を抽出する具体的な例を紹介します。文字列からすべての数値を抽出するimport java.util.regex.Matcher; imp