Java Regex –正規表現とは何ですか?その使用方法は?



Java Regexは、文字列を検索または操作するためのパターンを定義するために使用されるAPIです。この記事では、Javaが提供するさまざまなクラスの正規表現についても説明します。

データの抽出または検証は、すべてのプログラミング言語の重要な側面です。データ検証の最も一般的な方法の1つは、正規表現を使用することです。 これらを使用します文字のパターンを説明する正規表現。この記事 Java正規表現 式を使用するさまざまな方法を次の順序でリストします。

始めましょう!





正規表現とは何ですか?

正規表現 検索パターンを構成する文字のシーケンスです。テキスト内のデータを検索する場合、この検索パターンを使用して、探しているものを説明できます。

正規表現-JavaRegex-Edureka



Linux管理者の役割と責任

正規表現は 単一の文字またはより複雑なパターン。あらゆるタイプのテキスト検索およびテキスト置換操作に使用できます。正規表現パターンは、次のような単純な文字で構成されます / abc / 、または次のような単純文字と特殊文字の組み合わせ / ab * c / または /example(d+).d*/

Java正規表現とは何ですか?

ザ・ Java正規表現 に使用されるAPIです 検索または操作するためのパターンを定義する 。パスワードや電子メールの検証など、文字列の制約を定義するために広く使用されています。

Java正規表現を使用するさまざまな方法があります。それでは、先に進んで、さまざまな表現を見てみましょう。



マッチャークラス

このクラスは、文字シーケンスに対して一致操作を実行するために使用されます。以下の表は、Matcherクラスのさまざまなメソッドを表しています。

方法 説明
ブール値matches() 指定された正規表現がパターンに一致するかどうかをテストします
ブール値find() パターンに一致する次の式を見つけるために使用されます
boolean find(int start) 指定された開始番号からパターンに一致する次の式を検索します
文字列group() 一致したサブシーケンスを返すために使用されます
int start() 一致したサブシーケンスの開始インデックスを返します
int end() 一致したサブシーケンスの終了インデックスを返します
int groupCount() 一致したサブシーケンスの総数を返します

パターンクラス

パターンクラスは、正規表現のコンパイルされたバージョンであり、正規表現エンジンのパターンを定義するために使用されます。

方法 説明
静的パターンコンパイル(文字列正規表現) 指定された正規表現をコンパイルし、パターンのインスタンスを返します
一致する一致(CharSequence入力) これは、指定された入力をパターンと一致させるマッチャーを作成するために使用されます
静的ブール一致(文字列正規表現、CharSequence入力) これは、コンパイルメソッドとマッチャーメソッドの組み合わせとして機能します。正規表現をコンパイルし、指定された入力をパターンと照合します
String [] split(CharSequence input) 指定されたパターンの一致の周りに指定された入力文字列を分割するために使用されます
文字列pattern() 正規表現パターンを返すのに役立ちます

次に、正規表現の記述方法を理解するための小さな例を見てみましょう。

importjava.util.regex。* public class RegexExample {public static void main(String [] args){Pattern pattern = Pattern.compile( '。xx。')Matcher matcher = pattern.matcher( 'AxxB')System.out .println( '文字列は指定された正規表現に一致します-+ matcher.matches())}}

この場合、内部的にはパターンとマッチャーを使用します 処理を行うための正規表現クラスですが、明らかに、コード行を減らします。パターンクラスには、正規表現と入力文字列を引数として受け取り、それらを照合した後にブール結果を返すmatchesメソッドも含まれています。したがって、コードは入力を照合するために正常に機能します Javaの正規表現を使用します。したがって、以下に示すように、出力はtrueになります。

出力:
true

qtpvsセレンの方が優れています

次に、Java正規表現のいくつかのカテゴリを見てみましょう。

正規表現文字クラス

以下の表は、さまざまな文字クラスの組み合わせを表しています。

キャラクタークラス説明
[abc] a、b、またはc(単純なクラス)
[^ abc] a、b、またはc(否定)以外のすべての文字
[a-zA-Z] aからzまたはAからZまで(範囲)
[a-d [m-p]] aからd、またはmからp:[a-dm-p](和集合)
[a-z && [def]] d、e、またはf(交差点)
[a-z && [^ bc]] bとcを除くaからz:[ad-z](減算)
[a-z && [^ m-p]] mからpではなくaからz:[a-lq-z](減算)

例:

importjava.util.regex。* public class CharacterExample {public static void main(String args []){// false(x、y、zではない)System.out.println(Pattern.matches( '[xyz]'、 'wbcd'))// true(xまたはyまたはzの間)System.out.println(Pattern.matches( '[xyz]'、 'x'))// false(xおよびyは複数回来る)System .out.println(Pattern.matches( '[xyz]'、 'xxyyyyyz'))}}

正規表現の数量詞

数量詞は、文字の出現回数を指定します。以下の表は、さまざまな数量詞を表しています。

正規表現説明
バツ? Xが1回発生するか、まったく発生しない
X + Xは1回以上発生します
バツ * Xは0回以上発生します
X {n} Xはn回だけ発生します
X {n、} Xはn回以上発生します
XとZ} Xは少なくともy回発生しますが、z回未満です

例:

importjava.util.regex。* public class Example {public static void main(String args []){System.out.println( '?quantifier ....')//(aまたはyまたはzが1回来る) System.out.println(Pattern.matches( '[ayz]?'、 'a'))//出力:true System.out.println(Pattern.matches( '[ayz]?'、 'aaa'))/ /(ayとzが複数回来る)System.out.println(Pattern.matches( '[ayz]?'、 'ayyyyzz'))//出力:false //(aが複数回来る)システム。 out.println(Pattern.matches( '[ayz]?'、 'amnta'))//出力:false //(aまたはyまたはzは1回だけ来る必要があります)System.out.println(Pattern.matches( '[ ayz]? '、' ay '))//出力:false System.out.println(' + quantifier .... ')//(aまたはyまたはzを1回以上)System.out.println(Pattern .matches( '[ayz] +'、 'a'))//出力:true //(aは複数回来る)System.out.println(Pattern.matches( '[ayz] +'、 'aaa' ))// outpu:true //(aまたはyまたはzが複数回来る)System.out.println(Pattern.matches([amn] + '、' aayyyzz '))//出力:true //(zとtが一致するパターンではありません)System.out.println(Pat tern.matches( '[ayz] +'、 'aammta'))//出力:false System.out.println( '* quantifier ....')//(aまたはyまたはzは0回以上来る可能性があります)System.out.println(Pattern.matches( '[ayz] *'、 'ayyyza'))//出力:true}}

基本的に、一致する数量詞を検索し、検索結果と一致します。

正規表現のメタ文字

正規表現のメタ文字はショートコードとして機能します。さまざまなタイプのメタ文字を理解するために、以下の表を見てみましょう。

正規表現説明
任意の文字にすることができます(ターミネーターと一致する場合と一致しない場合があります)
d [0-9]以外の任意の数字を表します
D [^ 0-9]の略で、数字以外を表します
s [tnx0Bfr]の略である空白文字を表します
S [^ s]の略で、空白以外の文字にすることができます。
[a-zA-Z_0-9]の略である単語文字にすることができます。
[^ w]の略で単語以外の文字を表します
b 単語の境界を表します
B 単語以外の境界です

例:

Javaのスキャナークラスとは何ですか
importjava.util.regex。* public class MetacharExample {public static void main(String args []){// dは数字を意味しますSystem.out.println( 'metacharacters d ....')//(非数字) System.out.println(Pattern.matches( 'd'、 'abc'))//出力:false //(数字で1回来る)System.out.println(Pattern.matches( 'd'、 '1') )//出力:true //(数字ですが複数回来る)System.out.println(Pattern.matches( 'd'、 '4443'))//出力:false //(数字と文字)System.out .println(Pattern.matches( 'd'、 '323abc'))//出力:false // Dは数字以外を意味しますSystem.out.println( 'metacharacters D ....')//(数字ではないが複数回来る)System.out.println(Pattern.matches( 'D'、 'abc'))//出力:false //その桁System.out.println(Pattern.matches( 'D'、 '1 '))//出力:false System.out.println(Pattern.matches(' D '、' 4443 '))//出力:false //(数字と文字)System.out.println(Pattern.matches(' D '、' 323abc '))//出力:false //(数字ではなく1回来る)System.out.println(Pattern.matches(' D '、' m '))//出力:true System.out .pr intln( 'metacharacters D with quantifier ....')//(数字ではなく、0回以上来る可能性があります)System.out.println(Pattern.matches( 'D *'、 'abc'))//出力:true}}

上記の条件に基づいて、出力を表示します。それがその仕組みです。だから、それはすべてさまざまな種類の 正規表現。これで、この記事は終わりです。私あなたがそれが有益であると思ったことを願っています。詳細については、こちらをご覧ください。 同じように。

チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。私たちはあなたの旅のすべてのステップであなたを助けるためにここにいます、このJavaインタビューの質問に加えてなるために、私たちはJava開発者になりたい学生と専門家のために設計されたカリキュラムを考え出します。

質問がありますか?この「Java正規表現」記事のコメントセクションにその旨を記載してください。できるだけ早くご連絡いたします。