ホームページ > ウェブフロントエンド > jsチュートリアル > 正規表現を使用した一致する単一文字の詳細な分析

正規表現を使用した一致する単一文字の詳細な分析

php中世界最好的语言
リリース: 2018-03-30 10:09:18
オリジナル
2343 人が閲覧しました

今回は、正規表現を使用して単一の文字を照合する場合の詳細な分析をお届けします。正規表現を使用して単一の文字を照合する場合の注意事項は何ですか?実際のケースを見てみましょう。

この記事の例では、単一文字の一致に関する

正規表現のチュートリアルについて説明します。参考として、次のようにみんなと共有してください。

注: すべての例では、正規表現の一致結果はソース テキストの [] の間に含まれています。一部の例は、Java を使用して実装されます。 Java 自体での正規表現の使用法については、対応する場所で説明します。すべての Java サンプルは JDK1.6.0_13 でテストされています。 javaテストコード:

/**
 * 根据正则表达式和要匹配的源文本,输出匹配结果
 * @param regex 正则表达式
 * @param sourceText 要匹配的源文本
 */
public static void matchAndPrint(String regex, String sourceText){
  Pattern pattern = Pattern.compile(regex);
  Matcher matcher = pattern.matcher(sourceText);
  while(matcher.find()){
    System.out.println(matcher.group());
  }
}
ログイン後にコピー

1. プレーンテキストのマッチング

1. マッチング結果は1つだけです まず、それ自体はプレーンですが、今日は簡単な正規表現を見てみましょうテキストですが、正規表現です。例を見てみましょう:

ソーステキスト:

昨日は歴史、明日は謎、しかし今日は贈り物

正規表現:

today

結果: 昨日は歴史、明日は謎ですが。

[今日]

は贈り物です。分析: ここで使用される正規表現はプレーン テキストであり、ソース テキストの今日と一致します。

matchAndPrint メソッドを呼び出すと、出力結果は次のようになります:

today

2. 複数の一致結果がありますソーステキスト:

昨日は歴史、明日は謎、しかし今日は贈り物です。

正規表現:

is

結果: 昨日は歴史、明日は謎ですが、

[今日]

は贈り物です。 分析: ソーステキストには 3 つの is がありますが、4 つの is があります出力は、履歴にあるため、も一致します。

matchAndPrint メソッドを呼び出すと、出力結果は次のようになります:

is

is

is

is

3. 大文字と小文字の問題 正規表現は区別するためのものです文字 大文字と小文字は区別されませんが、多くの正規表現実装では大文字と小文字を区別しない一致操作もサポートされています。

JavaScript

では、i フラグを使用して、大文字と小文字を区別しない一致を実行します。 Java では、大文字と小文字を区別しないようにしたい場合は、正規表現をコンパイルするときに次のように指定できます。

Patternpattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
ログイン後にコピー

2. 任意の文字と一致します

前に見た正規表現はすべて静的なプレーン テキストです。正規表現の力を反映していません。次に、正規表現を使用して予測できない文字と一致する方法を見てみましょう。

正規表現では、検索対象を指定するために

特殊文字

(または文字のコレクション) が使用されます。 . 文字 (英語のステータスピリオド) は、任意の 1 文字と一致します。 DOS の ? 文字および SQL の _ (アンダースコア) 文字に相当します。例: 正規表現 c.t は、cat、cut、cot などに一致します。例を見てみましょう。 テキスト:

orders1.txt

orders2.txt

sales1.txt

salesA.txt

orders3.txt

sales2.txt

売上.txt

正規表現:

sales

.結果:

orders1.txt

orders2.txt

【売上1】.txt

【売上A】.txt

orders3.txt

【売上2】.txt

分析: ポジティブ 次に、式販売。結果からわかるように、 は文字、数字、およびそれ自体と一致します。 7 つのファイルのうち 4 つがこのパターンに一致します。

matchAndPrint メソッドが呼び出された場合、出力結果は次のようになります:

sales1

salesA

sales2

sales.

3. 特殊文字の一致

.通常のキャラクター式には特別な意味があります。パターンに . が必要な場合は、正規表現における特別な意味ではなく、 . 文字自体が必要であることを正規表現に伝える方法を見つける必要があります。これを行うには、 . 文字を前に付けてエスケープする必要があります。これはメタキャラクター(文字自体の意味ではなく、この文字が特別な意味を持っていることを示すメタキャラクター)でもあります。次の例を考えてみましょう。

その後に続く数字に関係なく、na または sa で始まるファイルを検索します。

テキスト:

sales.txt

na1.txt

na2.txt

sa1.txt

sanatxt.txt

正規表現: .

a..txt

結果:

【sal】es.txt

【na1】.txt

【na2】.txt

【sa1】.txt

【sanatxt】。

分析: この正規表現では na1.txt、na2.txt、sa1.txt が見つかりましたが、2 つの予期しない結果も見つかりました。正規表現 .a..txt 内の . 文字は任意の文字と一致するためです。 . 文字自体と一致させるには、エスケープを使用する必要があります。正規表現を .a..txt に変更すると、ニーズを満たすことができます。

注: Java を使用する場合、正規表現 .a..txt は Java 言語のエスケープ文字でもあるため、.a.\.txt として記述する必要があります。

4. 概要

正規表現は、実際にはいくつかの文字で構成される文字列です。これらの文字は、通常の文字 (プレーン テキスト) またはメタ文字 (特別な意味を持つ特殊文字) にすることができます。ここでは、ユニット文字に合わせて通常文字とメタ文字を使用する方法を紹介します。 . 任意の文字に一致します。文字をエスケープするために使用されます。正規表現では、特別な意味を持つ文字シーケンスは常に文字で始まります。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

phpとjsを使用して数字と文字の定期的なパスワード照合を実装する

漢字を含めることができないJQでの定期的な検証の方法

以上が正規表現を使用した一致する単一文字の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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