Java

 Computer >> コンピューター >  >> プログラミング >> Java
  1. Javaの正規表現で大文字・小文字を区別せずに特定の文字にマッチさせる方法

    Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを見つけ出すためのさまざまなクラスが用意されています。中でもPatternクラスは、正規表現をコンパイルした結果を保持するクラスであり、文字列検索の中心的な役割を担います。 大文字・小文字を無視してマッチさせる手順 入力文字列から、大文字・小文字を区別せずに特定の文字へマッチさせるには、以下の手順に従います。 入力文字列を取得する。 compile()メソッドで正規表現をコンパイルする。Patternクラスのcompile()メソッドは、正規表現を表す文字列とフラグを表す整数値を受け取り、Patter

  2. 【Java】正規表現のメタ文字\B(非単語境界)の使い方をサンプルコードで解説

    Javaの正規表現におけるメタ文字「\B」は、単語境界以外の位置(非単語境界)にマッチします。この記事では、\Bの基本的な意味と、サンプルコードによる具体的な動作をわかりやすく解説します。 メタ文字\Bとは 正規表現の\bは「単語境界」、すなわち単語文字([a-zA-Z_0-9])とそれ以外の文字の境目にある位置にマッチします。\Bはその逆で、次のような単語境界になっていない位置にマッチします。 単語文字と単語文字の間(例:「ab」の「a」と「b」の間) 非単語文字と非単語文字の間(例:「!@」の「!」と「@」の間) また、\Bはゼロ幅アサーションと呼ばれる種類のパターンのため、マッチし

  3. Javaの正規表現におけるサブ式(グループ化)の使い方

    Javaの正規表現において、サブ式(メタ文字)( )は、複数の正規表現をひとつのグループにまとめ、マッチしたテキストを記憶する働きを持ちます。グループ化を活用すると、選択(|)の適用範囲を限定したり、マッチした一部分の文字列を後から取り出したりできるようになります。 例1:基本的なグループ化 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String args[]) { String input =

  4. Java正規表現のサブ表現(?:re)とは?非キャプチャグループの基本とサンプルコード

    Javaの正規表現におけるサブ表現(メタ文字)「(?: re)」は、正規表現をグループ化するための構文です。通常のグループ「(re)」と異なり、マッチしたテキストを記憶(キャプチャ)しないため、「非キャプチャグループ」と呼ばれます。 (?:re) の特徴 「(?:re)」を使うと、複数の要素をひとつのまとまりとして扱えますが、後方参照や group() メソッドでの取得対象にはなりません。マッチの判定だけが必要で、キャプチャした文字列を後から利用しない場合に、メモリの無駄を省き、パターンをすっきり記述できるのがメリットです。 サンプルコード 以下は、ユーザーから入力された文字列に対して「(?:

  5. Java正規表現のサブ式(?>re)――バックトラックしない独立パターンの解説

    Javaの正規表現におけるサブ式・メタ文字「(?>re)」は、バックトラック(後戻り)を行わない独立したパターンを表します。これは「原子グループ(atomic group)」とも呼ばれ、一度マッチに成功すると、その結果を確定してそれ以降のマッチ処理で再評価されません。バックトラックとは?通常、正規表現エンジンはパターン全体がマッチするように、部分的なマッチ結果を巻き戻して別の組み合わせを試す「バックトラック」を行います。しかし「(?>re)」で囲まれた部分は独立して扱われるため、内部でのマッチが確定した後に外側のパターンとの整合性が取れない場合でも、巻き戻しによる再試行が行われませ

  6. Java正規表現の「re?」メタ文字とは?意味と使い方をサンプルコード付きで解説

    Javaの正規表現におけるメタ文字「re?」は、直前の文字やグループ(部分式)が0回または1回出現する場合にマッチすることを表します。つまり、直前の要素が「あってもなくてもよい」という意味になります。例1:基本的なマッチ回数のカウント次のプログラムでは、正規表現「Wel?」を使って入力文字列内のマッチ数を数えています。「l?」により、lがあってもなくてもマッチします。import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void

  7. JavaでJackson APIを使ってJsonNodeをArrayNodeに変換する方法

    JsonNodeは、JSONツリーモデルを構成するすべてのJSONノードの基底クラスです。一方、ArrayNodeは、JSONコンテンツからマッピングされた配列を表すノードクラスです。JsonNodeをArrayNodeに変換するには、ObjectMapperクラスのreadTree()メソッドで取得したノードをArrayNodeにキャストします。さらに、get()メソッドを使用することで、配列ノード内の指定した要素の値にアクセスできます。 構文 public JsonNode readTree(String content) throws IOException, com.fasterxml

  8. JavaのPattern.matcher()メソッドの使い方を実例で解説

    Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを検索するためのさまざまなクラスが用意されています。 このパッケージに含まれるPatternクラスは、正規表現をコンパイルした結果を表すクラスです。このクラスが提供するmatcher()メソッドは、入力文字列を表すCharSequenceオブジェクトを引数として受け取り、現在のPatternオブジェクトが表す正規表現と入力文字列を照合するためのMatcherオブジェクトを返します。 matcher()メソッドの基本的な流れ matcher()メソッドを使った正規表現マッチングは、一般的に以下の手順で行い

  9. JavaのPattern.quote()メソッドとは?使い方をサンプルコード付きで解説

    Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを検索するためのさまざまなクラスが用意されています。このパッケージに含まれるPatternクラスは、正規表現をコンパイルした結果を表すクラスです。このクラスが提供するquote()メソッドは、文字列を引数として受け取り、その文字列と完全に一致するパターン文字列を返します。具体的には、指定された文字列の前後に\Qと\Eというエスケープシーケンスが追加され、正規表現のメタ文字がすべて無効化されます。ただし、元の文字列そのものの意味が変わることはありません。Pattern.quote()メソッドの基本動作qu

  10. JavaのPattern.matches()メソッドとは?使い方をサンプルコード付きで解説

    Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを検索するためのさまざまなクラスが用意されています。その中でもPatternクラスは、正規表現をコンパイルした状態で保持するクラスです。 Patternクラスのmatches()メソッドは、次の2つの引数を受け取ります。 正規表現を表す文字列 入力文字列を表すCharSequenceインターフェースのオブジェクト このメソッドを呼び出すと、入力文字列全体が指定した正規表現と一致するかどうかが評価されます。戻り値はboolean型で、一致した場合はtrue、一致しなかった場合はfalseが返されます

  11. JavaのPatternクラスpattern()メソッドの使い方を実例で解説

    Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを検索するためのクラスが多数用意されています。その中でもPatternクラスは、正規表現をコンパイルした結果を表すクラスであり、正規表現によるマッチング処理の出発点となる存在です。 このPatternクラスが提供するpattern()メソッドは、現在のパターンオブジェクトを生成する際に使用された正規表現そのものを、文字列(String)形式で取得して返します。 メソッドの構文 public String pattern() 引数は不要で、呼び出すだけでコンパイル済みの正規表現源文字列をそのまま受け取れ

  12. 【Java】Patternクラスのsplit()メソッドの使い方を実行例つきで解説

    Pattern.split()メソッドとは java.util.regexパッケージのPatternクラスは、正規表現をコンパイルした結果を保持するクラスです。コンパイル済みの正規表現オブジェクトは再利用できるため、同じパターンで繰り返しマッチングを行う場合に効率的です。 このクラスが提供するsplit()メソッドは、入力文字列を表すCharSequenceオブジェクトを引数として受け取ります。そして、正規表現パターンに一致する箇所ごとに入力文字列を分割し、分割されたすべてのトークン(部分文字列)を格納したString型の配列を返します。 基本的な使用例 次の例では、「空白+数字+空白」という

  13. 【Java】Pattern.splitAsStream()メソッドの使い方をサンプルコード付きで解説

    Patternクラスとはjava.util.regexパッケージに含まれるPatternクラスは、正規表現をコンパイルした結果を表すクラスです。このクラスを利用することで、文字列に対して効率的なパターンマッチングや分割処理を実行できます。splitAsStream()メソッドの概要splitAsStream()メソッドは、入力文字列を表すCharSequenceオブジェクトを引数として受け取り、パターンが一致するたびに文字列を新しい部分文字列へと分割します。そして、すべての部分文字列を含むStreamとして結果を返します。従来のsplit()メソッドとの大きな違いは、戻り値が配列ではなくStr

  14. 【Java】PatternクラスのtoString()メソッドの使い方と実行例

    java.util.regex パッケージの Pattern クラスは、正規表現をコンパイルした結果を表すクラスです。このクラスを利用することで、文字列に対する効率的なパターンマッチング処理を行うことができます。 toString() メソッドは、現在の Pattern オブジェクトがコンパイルされる際に使用された正規表現そのものを文字列として返します。つまり、Pattern.compile() に渡した正規表現と同じ内容を取得できます。 例1:toString()メソッドの基本的な使い方 import java.util.Scanner; import java.util.regex.Pat

  15. JavaのPatternクラスflags()メソッドとは?使い方をサンプルコード付きで解説

    Patternクラスとは java.util.regexパッケージのPatternクラスは、正規表現をコンパイルした結果を表すクラスです。あらかじめ正規表現をオブジェクトとして保持しておくことで、繰り返しのマッチング処理を高速かつ効率的に行えるようになります。 compile()メソッドのシグネチャ このクラスのcompile()メソッドは、正規表現を表す文字列を受け取り、Patternオブジェクトを返します。基本的なシグネチャは以下のとおりです。 static Pattern compile(String regex) また、このメソッドにはマッチングの動作を制御するための「フラグ」をint

  16. 【Java入門】Pattern.CANON_EQフラグの使い方をサンプルコードで解説

    JavaのPatternクラスには、正規表現のマッチング動作を制御するためのさまざまなフラグが用意されています。そのひとつであるCANON_EQフィールドは、「正規化等価(canonical equivalence)」に基づいて文字を照合するためのフラグです。このフラグをcompile()メソッドに指定すると、2つの文字は完全な正準分解(canonical decomposition)の結果が等しい場合に限りマッチするとみなされます。ここでいう正準分解とは、Unicodeのテキスト正規化形式のひとつです。たとえば、アクセント記号付きの合成済み文字(1つのコードポイント)と、基本文字+結合文字(

  17. JavaのPattern.CASE_INSENSITIVEフラグとは?使い方を実行例付きで解説

    JavaのPatternクラスが持つCASE_INSENSITIVEフィールドは、大文字と小文字を区別せずに文字をマッチングさせるための正規表現フラグです。このフラグをcompile()メソッドに渡してパターンをコンパイルすると、正規表現による検索時に大文字・小文字のどちらの文字でもマッチするようになります。注意:デフォルトでは、このフラグはASCII文字(半角英数字)のみを対象としてマッチングを行います。Unicode文字全体を対象にしたい場合は、UNICODE_CASEフラグと組み合わせて使用します。例1:指定した文字の出現回数を大文字小文字を区別せずにカウントする次のプログラムでは、ユー

  18. JavaのPattern.COMMENTSフィールドとは?使い方を実例付きで解説

    JavaのPatternクラスが持つCOMMENTSフィールドは、正規表現パターンの中に空白文字やコメントを自由に記述できるようにするフラグです。このフラグをcompile()メソッドの第2引数として指定すると、パターン内の空白文字や、#記号で始まるコメント部分はすべて無視されてコンパイルされます。 複雑な正規表現を扱う場合、そのままでは読みにくくなりがちですが、COMMENTSフラグを活用すれば、各部分に説明用のコメントを付けたり、改行やインデントを使って整形したりできるため、可読性と保守性が大きく向上します。なお、このフラグは正規表現内に(?x)を埋め込む方法でも同等の効果が得られます。

  19. Java PatternクラスのDOTALLフィールドとは?具体例でわかりやすく解説

    Javaの Pattern クラスには、正規表現の動作を制御するためのさまざまなフラグが用意されています。そのひとつである DOTALL フィールドを有効にすると、いわゆる「dotallモード」がオンになります。デフォルトの状態では、正規表現の「.」(ドット)というメタ文字は、改行などの行末記号を除くすべての文字に一致します。しかし、DOTALLモードを有効にすると、「.」は行末記号も含めたすべての文字に一致するようになります。例1:通常モードでの「.」の挙動まず、フラグを指定せずにパターンをコンパイルした場合の動作を見てみましょう。import java.util.regex.Matcher

  20. JavaのPattern.LITERALフィールドとは?具体例でわかりやすく解説

    JavaのPattern.LITERALは、パターンをリテラル(文字通り)として解析することを有効にするフラグです。このモードでは、エスケープシーケンスやメタ文字を含むすべての文字が特別な意味を持たなくなり、単なる文字として扱われます。 通常、入力テキストに対して正規表現「^This」で検索すると、「This」という単語で始まる行に一致します。しかし、LITERALフラグを指定した場合は挙動が変わります。以下の例で確認してみましょう。 例1:LITERALフラグを使った基本的なマッチング import java.util.regex.Matcher; import java.util.rege

Total 1930 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:42/97  20-コンピューター/Page Goto:1 36 37 38 39 40 41 42 43 44 45 46 47 48