今回は、正規表現を使用して単一の文字を照合する場合の詳細な分析をお届けします。正規表現を使用して単一の文字を照合する場合の注意事項は何ですか?実際のケースを見てみましょう。
この記事の例では、単一文字の一致に関する正規表現のチュートリアルについて説明します。参考として、次のようにみんなと共有してください。
注: すべての例では、正規表現の一致結果はソース テキストの [] の間に含まれています。一部の例は、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つだけです まず、それ自体はプレーンですが、今日は簡単な正規表現を見てみましょうテキストですが、正規表現です。例を見てみましょう:
ソーステキスト:
昨日は歴史、明日は謎、しかし今日は贈り物正規表現:
today結果: 昨日は歴史、明日は謎ですが。
[今日]は贈り物です。分析: ここで使用される正規表現はプレーン テキストであり、ソース テキストの今日と一致します。
matchAndPrint メソッドを呼び出すと、出力結果は次のようになります:
today
2. 複数の一致結果がありますソーステキスト:
昨日は歴史、明日は謎、しかし今日は贈り物です。正規表現:
is結果: 昨日は歴史、明日は謎ですが、
[今日]は贈り物です。 分析: ソーステキストには 3 つの is がありますが、4 つの is があります出力は、履歴にあるため、も一致します。
matchAndPrint メソッドを呼び出すと、出力結果は次のようになります:
isis
is
is
3. 大文字と小文字の問題 正規表現は区別するためのものです文字 大文字と小文字は区別されませんが、多くの正規表現実装では大文字と小文字を区別しない一致操作もサポートされています。
JavaScript では、i フラグを使用して、大文字と小文字を区別しない一致を実行します。 Java では、大文字と小文字を区別しないようにしたい場合は、正規表現をコンパイルするときに次のように指定できます。 Patternpattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
前に見た正規表現はすべて静的なプレーン テキストです。正規表現の力を反映していません。次に、正規表現を使用して予測できない文字と一致する方法を見てみましょう。
正規表現では、検索対象を指定するために
特殊文字(または文字のコレクション) が使用されます。 . 文字 (英語のステータスピリオド) は、任意の 1 文字と一致します。 DOS の ? 文字および SQL の _ (アンダースコア) 文字に相当します。例: 正規表現 c.t は、cat、cut、cot などに一致します。例を見てみましょう。 テキスト:
orders1.txtorders2.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 メソッドが呼び出された場合、出力結果は次のようになります: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を使用して数字と文字の定期的なパスワード照合を実装する
以上が正規表現を使用した一致する単一文字の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。