Java の正規表現

WBOY
リリース: 2024-08-30 15:33:26
オリジナル
312 人が閲覧しました

Java では、正規表現または正規表現は、文字列を検索、操作、編集するパターンの定義に役立つアプリケーション プログラム インターフェイスです。 Java 正規表現は、パスワードや電子メールの検証に広く使用されています。これらの式は java.util.regex パッケージによって提供され、1 つのインターフェイスと 3 つのクラスで構成されます。

3 つのクラスは次のとおりです:

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

  • パターン: パターンの定義に役立ちます。
  • マッチャー: パターンを使用すると、一致操作の実行に役立ちます。
  • PatternSyntaxException: 構文エラーを示すのに役立ちます。

Java Regex には、正規表現の一致演算結果の決定に役立つ MatchResultInterface と呼ばれるインターフェースが 1 つあります。

Java の正規表現の構文

プログラムを使用して Java で正規表現を作成する方法を見てみましょう。

コード:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples {
public static void main(String args[]){
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
}   }
ログイン後にコピー

出力:

Java の正規表現

正規表現で一般的に使用されるメソッド

正規表現には一般的に使用されるメソッドが 3 つあります。

1.インデックスメソッド

インデックス メソッドは、入力として指定された文字列内で一致が見つかった場所を正確に示すのに役立つインデックス値を提供します。

Method Description
start() The previous match’s start index is returned.
start(int group) Given the group’s previous match operation, the subsequence is captured and returned.
end() The offset after matching the last character is returned.
End(int group) Given the group’s previous match operation, subsequence is captured and offset after matching its last character returned.
メソッド

説明

start() 前の一致の開始インデックスが返されます。 開始(int グループ) グループの以前の一致操作を考慮して、サブシーケンスがキャプチャされて返されます。 end() 最後の文字と一致した後のオフセットが返されます。 終了(int グループ) グループの以前の一致操作を考慮すると、返された最後の文字と一致した後でサブシーケンスがキャプチャされ、オフセットされます。 テーブル> 2.勉強法
Method Description
lookingAt() Match the sequence given as input against the pattern from the beginning of the region.
find() Finds the next subsequence of the sequence given as input against the pattern from the beginning of the region.
find(int start) Resets the matcher and then finds the next subsequence of the sequence given as input against the specified index pattern.
matches() Matches content against the pattern.

スタディ メソッドは、入力として指定された文字列をチェックし、パターンが見つかったかどうかを示すブール値を返します。

メソッド

Method Description
appendReplacement(StringBuffer s, String replacement) A non-terminal append and replacement step will be implemented.
appendTail(StringBuffer s) A terminal append and replacement step will be implemented.
replaceAll(String replacement) Replace all subsequence of the sequence given as input that matches against the pattern with a replacement string.
quoteReplacement(String s) A literal replacement string will be returned for the mentioned string.
replaceFirst(String replacement) Replace the first subsequence of the sequence given as input that matches the pattern with a replacement string.
説明 lookingAt() 入力として指定されたシーケンスを領域の先頭のパターンと照合します。 find() 領域の先頭からのパターンに対して、入力として指定されたシーケンスの次のサブシーケンスを検索します。 find(int start) マッチャーをリセットし、指定されたインデックス パターンに対して入力として指定されたシーケンスの次のサブシーケンスを検索します。 matches() コンテンツをパターンと照合します。 テーブル> 3.交換方法 文字列内のテキストを置換するために使用されるメソッド。 メソッド 説明 appendReplacement(StringBuffer , 文字列置換) 非ターミナルの追加および置換ステップが実装されます。 appendTail(StringBuffer s) ターミナルの追加と置換のステップが実装されます。 replaceAll(文字列置換) 入力として指定されたシーケンスのうち、パターンと一致するすべてのサブシーケンスを置換文字列に置き換えます。 quoteReplacement(String s) 言及された文字列に対してリテラル置換文字列が返されます。 replaceFirst(文字列置換) 入力として指定されたシーケンスのうち、パターンに一致する最初のサブシーケンスを置換文字列に置き換えます。 テーブル>

How to Define Regular Expression in Java?

There are several ways in which a regular expression can be defined.

1. Literals

Suppose a string “hai” has to be searched in the text “hai”.

It can be done using syntax.

Pattern.matches("hai", "hai")
ログイン後にコピー

2. Character Classes

It matches every single character in the text given as input against multiple permitted characters in the character class.

The following are the various class constructs.

Character Class Explanation
[pqr] Matches the text if it contains either p, q or r, and it should be only once.
[^pqr] ^ denotes the negation, and due to that, here, single character except for p, q, or r are taken.
[a-zA-Z] a to z and A to Z are considered.
[a-d[p-s]] a to d, or p to s.
[a-dm-p] Union of both ranges.
[a-z&&[pqr]] a to z and (p, q or r).
[a-z&&[^pq]] a to z and also, p, q are not considered.
[ad-z] Performs the subtraction.
[a-z&&[^m-p]] a to z and not m to p.

3. Metacharacters

Metacharacters act like shortcodes in the regular expression.

The following are some of the metacharacters commonly used.

Regular Expression Explanation
\d Any digit from 0 to 9. It can be written as [0-9] as well.
\D Any non-digit from 0 to 9. It can be written as [^0-9] as well.
\s Whitespace character or [\t\n\x0B\f\r].
\S Non whitespace character or [^\s].
\w Word character or [a-zA-Z_0-9].
\W Non-word character or [^\w].
\b Word boundary.
\B Non-word boundary.

4. Quantifiers

Quantifiers mention the count of occurrence of each character to match against the string.

Regular Expression Explanation
a? It occurs once or not at all.
A* A occurs 0 or more times.
A+ A occurs 1 or more times.
A{n} A occurs exactly n times.
A{n,} A occurs n or more than that.
A{n,m} A occurs at least n times, but it should not be more than m times.

How to Create Regular Expression in Java?

Now, let us see a java program with the above-mentioned regular expressions.

Code:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples {
public static void main(String args[]){
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("[Hh]ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("[aA]nn|[jJ]ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^[^\\d].*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^[^\\d].*", "anna9448")); //True
}
}
ログイン後にコピー

Output:

Java の正規表現

Conclusion – Regular Expressions in Java

Java Regular Expressions are widely used for real-time applications such as password and email verification. These expressions are APIs that define patterns and offer searching, editing, and several other operations in the string.

以上がJava の正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート