-
Javaの正規表現における「[^...]」(否定文字クラス)の使い方
Javaの正規表現における部分式(メタ文字)「[^...]」は、括弧内に含まれていない任意の1文字にマッチする否定文字クラスです。通常の文字クラス「[...]」が括弧内のいずれかの文字にマッチするのに対し、先頭に「^」を付けることで意味が反転し、指定した文字以外にマッチします。例1:特定の文字以外の出現回数をカウントする次の例では、「h」「w」「t」「y」「o」「u」「p」「i」以外の文字が入力文字列にいくつ含まれているかを数えています。import java.util.regex.Matcher; import java.util.regex.Pattern; public class S
-
Javaの正規表現における\wメタ文字の使い方を徹底解説
Javaの正規表現で使用されるサブ式(メタ文字)「\w」は、単語構成文字にマッチします。具体的には、半角英小文字(a〜z)、半角英大文字(A〜Z)、および半角数字(0〜9)が該当します。サンプルコード1:パターンにマッチした回数をカウントする次の例では、正規表現「\w to」を使い、入力文字列の中にこのパターンが何回出現するかをカウントして表示します。import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void main(St
-
Javaの正規表現「\W」メタ文字とは?非単語文字へのマッチ方法を解説
Javaの正規表現におけるサブ表現(メタ文字)「\W」は、単語文字以外の文字(非単語文字)に一致します。ここでいう単語文字とは、半角英字(a〜z・A〜Z)、数字(0〜9)、アンダースコア(_)のことであり、それ以外の空白や記号などはすべて非単語文字として扱われます。 「\W」は、単語文字に一致する「\w」と対になる否定形のメタ文字で、「[^\w]」と同等の意味を持ちます。文字列に記号や空白が含まれているかどうかを調べたい場合などに活用できます。 例1:非単語文字+「!」の組み合わせを検索する 次の例では、「\W!」というパターンを使用し、入力文字列内に「非単語文字の直後に感嘆符(!)が続く」箇
-
Javaの正規表現メタ文字「\s」の使い方を実例付きで解説
Javaの正規表現メタ文字「\s」とはJavaの正規表現において、メタ文字「\s」は空白文字(半角スペース・タブ・改行など)のいずれか1文字にマッチする特殊な記号です。文字列の中から空白を検索したり、数えたり、置き換えたりしたいときに活躍します。以下では、2つのサンプルコードを使って「\s」の具体的な使い方を解説します。サンプル1:空白文字の個数をカウントするまずは基本形です。PatternクラスとMatcherクラスを使って入力文字列を走査し、find()メソッドがマッチを見つけるたびにカウンターを1ずつ増やしています。import java.util.regex.Matcher; impo
-
Javaの正規表現「\S」メタ文字の使い方を徹底解説
Javaの正規表現におけるサブ式(メタ文字)「\S」は、空白以外の文字にマッチします。つまり、スペース・タブ・改行などの空白文字を除いた、すべての文字と一致します。このメタ文字を使うことで、「文字列から空白を除外した文字数をカウントする」「空白を含まないトークンを抽出する」といった処理を簡単に実装できます。例1:\Sにマッチする文字数をカウントする次のサンプルコードでは、入力文字列の中で「\S」にマッチした回数(=空白以外の文字数)をカウントしています。import java.util.regex.Matcher; import java.util.regex.Pattern; public
-
Javaの正規表現「\d」とは?数字マッチングの基本と実用例をわかりやすく解説
Javaの正規表現における部分式(メタ文字)「\d」は、半角数字(0〜9)1文字にマッチするためのパターンです。「d」は「digit(数字)」を意味しており、文字列の中から数値を検索・抽出・検証したい場合に非常に便利な構文です。 なお、「\d」は文字クラス「[0-9]」と同じ意味を持ちます。Javaの文字列リテラル内で正規表現を記述する際は、バックスラッシュ自体がエスケープ文字として扱われるため、コード中では「\\d」のように2重にエスケープして記述する点に注意しましょう。 例1:文字列から数字パターンを検索する 次の例では、入力文字列の中から「数字 + 半角スペース + 24」というパターン
-
Javaの正規表現\Dメタ文字とは?数字以外にマッチさせる方法を解説
Javaの正規表現におけるサブ表現(メタ文字)「\D」は、数字以外の文字(非数字)にマッチします。 「\D」は、数字1文字にマッチする「\d」と対になるメタ文字です。文字クラスで表すと「[^0-9]」と同等であり、英字・記号・空白など、0〜9以外のあらゆる文字にマッチします。 \Dに関連する主なメタ文字一覧 メタ文字意味 \d数字1文字([0-9]と同等) \D数字以外の1文字([^0-9]と同等) \s空白文字(スペース・タブ・改行など) \S空白以外の1文字 \w単語構成文字([a-zA-Z_0-9]と同等) \W単語構成文字以外の1文字 例1:\Dにマッチする文字数を数える
-
Javaの正規表現\Gメタ文字とは?前回のマッチ終了位置にマッチする特殊文字
Javaの正規表現におけるメタ文字「\G」は、前回のマッチが終了した位置にマッチします。通常の正規表現は文字列内の任意の位置でマッチを試みますが、「\G」を指定すると、直前のマッチの終了地点からしかマッチできなくなります。この特性を利用すると、文字列の先頭から連続したパターン(例:連続する数字)だけを効率的に抜き出すことができます。サンプルコードimport java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { publ
-
Javaの正規表現:\Aメタ文字で文字列の先頭に一致させる方法
Javaの正規表現におけるメタ文字「\A」は、入力文字列全体の先頭に一致します。「^」と似た働きをしますが、「^」はMULTILINEモード時に各行の先頭にも一致するのに対し、「\A」は常に文字列全体の先頭のみに一致するという違いがあります。 例1:\Aを使った基本的なマッチング 次のJavaプログラムでは、パターン「\AHi」を使って、入力文字列が「Hi」という文字列で始まっているかどうかを確認しています。 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample
-
Javaの正規表現「\z」メタ文字の使い方を徹底解説
Javaの正規表現におけるメタ文字(サブ式)「\z」は、文字列の末尾にマッチします。行単位ではなく、入力全体の最後尾だけが対象となるため、文字列が特定のパターンで終わっているかどうかを判定したい場合に非常に便利です。 なお、似た働きをする構文として「\Z」や「$」があります。「\Z」は末尾に改行がある場合にその直前にもマッチできる点、「$」はデフォルトでは行末にマッチする点で「\z」と挙動が異なります。厳密に入力全体の終端だけを判定したい場合は「\z」を使うのが確実です。 例1:文字列の末尾に特定の語句があるか確認する 次のサンプルコードでは、入力文字列が「Tutorialspoint」という
-
Javaの正規表現「\Z」メタ文字の使い方|文字列の末尾にマッチさせる方法
正規表現メタ文字「\Z」とはJavaの正規表現におけるメタ文字「\Z」は、入力文字列全体の末尾にマッチするアンカーです。ただし、文字列の最後に改行などの行末記号が付いている場合は、その行末記号の直前の位置にマッチする点が特徴です。よく似たメタ文字に「\z」があります。こちらは行末記号の有無にかかわらず、入力文字列の厳密な末尾にのみマッチします。\Z と \z の違い\Z … 入力の末尾にマッチする。ただし最終行末記号が存在する場合は、その直前の位置にマッチする。\z … 行末記号の有無に関係なく、入力の厳密な末尾にのみマッチする。サンプルコード1:文字列の末尾を検索する次の例では、パターン「T
-
Java正規表現の「+」メタ文字とは?使い方とサンプルコード解説
Javaの正規表現におけるメタ文字「+」は、直前の式(サブ式)が1回以上連続して出現する部分にマッチします。たとえば「a+」は「a」「aa」「aaa」のように、aが1個以上並んだすべての文字列に一致します。0回の出力にはマッチしないため、「0回でもよい」ことを意味する「*」とは挙動が異なる点に注意しましょう。 例1:パターンにマッチした回数を数える 次の例では、正規表現「aabc+」(「aab」の後にcが1回以上続くパターン)を使い、入力文字列の中でこのパターンが何回出現するかをカウントしています。Patternクラスで正規表現をコンパイルし、Matcherクラスのfind()メソッドで順番に
-
Javaの正規表現「re{n}」メタ文字の使い方を解説
re{n}メタ文字とはJavaの正規表現における「re{n}」は、直前の表現(部分式)がちょうどn回連続して出現する箇所にマッチさせるための量指定子(メタ文字)です。例えば「to{1}」と指定した場合、「t」の直後に「o」が1回だけ続く部分にマッチします。「o{3}」なら「ooo」というように、指定した回数ぴったりの繰り返しのみが対象となります。例1:マッチ回数をカウントする次のプログラムでは、文字列「Welcome to Tutorialspoint」の中に「to{1}」(tの直後にoが1回)というパターンが何回マッチするかを数えています。import java.util.regex.Mat
-
Javaの正規表現re{n,m}メタ文字の使い方とサンプルコード解説
Javaの正規表現における部分式(メタ文字)「re{n, m}」は、直前の式がn回以上・m回以下で繰り返される場合にマッチする量指定子です。これを利用することで、繰り返し回数の最小値と最大値を柔軟に制御できます。例1:re{n, m}の基本的な動作次のJavaプログラムでは、「xyy{2,4}」という正規表現を使い、入力文字列の中に条件に合致する箇所がいくつあるかをカウントしています。import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public sta
-
Javaの正規表現「a|b」メタ文字の使い方を徹底解説
Javaの正規表現におけるメタ文字「a|b」は、選択(OR)を表す特殊文字です。このメタ文字を使うと、「a」または「b」のどちらかに一致するパターンを定義できます。複数の候補の中からいずれかにマッチさせたい場合に非常に便利です。基本的な構文「|」(パイプ)記号で区切ることで、左右の部分式のどちらかに一致する正規表現を作成できます。3つ以上の候補を指定することも可能です。String regex = cat|dog; // 「cat」または「dog」に一致サンプルコード1:マッチ数をカウントする次のJavaプログラムでは、「Hello」または「welcome」という語句が入力文字列に何回出現する
-
Java正規表現のメタ文字「\b」(単語境界)の使い方を解説
Javaの正規表現におけるメタ文字(部分表現)「\b」は、括弧の外で使用した場合に単語の境界にマッチします。一方、括弧([ ])の中で使用した場合は、バックスペース文字(0x08)にマッチするという異なる動作になります。単語境界とは単語境界とは、単語を構成する文字(英数字やアンダースコアなど)と、それ以外の文字(空白記号や句読点など)との間にある位置のことです。例えば、「because」という単語を検索する際に「\bbecause\b」と指定すると、「because」という完全な単語だけがマッチし、「because」を含む他の単語(例:becauses)にはマッチしません。例1:特定の単語の出
-
Javaの正規表現:メタ文字「\t」でタブ文字を扱う方法
正規表現における部分式(メタ文字)「\t」は、タブ文字(水平タブ)に一致します。JavaのPatternクラスとMatcherクラスを組み合わせることで、文字列内のタブを検出したり、置換したりすることができます。例1:タブ文字の数をカウントする次のサンプルコードでは、ユーザーが入力した文字列からタブ文字を検索し、その出現回数を数えて表示します。import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { publi
-
Java正規表現(RegEx)で任意の文字にマッチさせる方法
Javaの正規表現におけるメタ文字「.」(ドット)は、任意の1文字にマッチします。マッチ対象はアルファベットでも数字でも、記号などの特殊文字でも構いません。メタ文字「.」の基本「.」は改行文字以外のあらゆる単一文字と一致するため、パターンの柔軟性を高めたい場面で非常に便利です。なお、ドットそのもの(リテラルの「.」)にマッチさせたい場合は、バックスラッシュでエスケープして「\.」と記述します。例1:任意の1文字とのマッチ次のプログラムでは、ユーザーから入力された文字列に対して正規表現「.」を適用し、文字数をカウントしています。import java.util.Scanner; import j
-
Java正規表現(Regex)で固定文字セットにマッチさせる方法
Javaの正規表現における文字クラスを使うと、あらかじめ定義しておいた固定の文字集合の中から「任意の1文字」にマッチさせることができます。たとえば、次のように記述します。 [tmp]:t、m、p のいずれか1文字にマッチします。 [^tp]:t と p 以外の任意の1文字にマッチします(先頭に ^ を付けると否定を意味します)。 角括弧 [ ] 内に候補となる文字を列挙すると、入力文字列の各位置についてその中のどれか1つが存在すればマッチが成立します。この仕組みを利用すると、「特定の文字が文字列内に何回出現するか」を簡単に数えることができます。 例1:指定した文字の出現回数をカウントする
-
Java正規表現で文字の範囲をマッチさせる方法【文字クラスの使い方を解説】
文字クラスで文字の範囲をマッチさせる基本正規表現において、ある文字から別の文字までの範囲に含まれるすべての文字(文字の範囲)をマッチさせたい場合は、文字クラスを使用します。文字クラスは、角括弧 [] の中にハイフン - で始点と終点をつなげて記述します。[a-z]「[a-zA-Z]」…… すべての英字(大文字・小文字のアルファベット)1文字にマッチします。「[0-9&&[^35]]」…… 3と5を除くすべての数字にマッチします。&& は文字クラス同士の共通部分(積集合)を表すJava独自の記法です。なお、&& を使った文字クラスの共通部分演算はJ