今回は、通常の位置マッチングの使用方法について詳しく説明します。通常の位置マッチングを使用する場合の注意事項は何ですか?実際のケースを見てみましょう。
この記事の例では、正規表現チュートリアルの位置マッチングについて説明します。参考として、次のようにみんなと共有してください。
注: すべての例では、正規表現の一致結果はソース テキストの [] の間に含まれています。一部の例は、Java を使用して実装されます。 Java 自体での正規表現の使用法については、対応する場所で説明します。すべての Java サンプルは JDK1.6.0_13 でテストされています。
1. 問題の紹介
テキスト内の特定の単語を一致させたい場合 (後で紹介する複数行モードを今のところ無視します)、次のようになります。 テキスト:昨日は歴史、明日はミステリー、しかし今日は贈り物です。
正規表現:is
結果:昨日【ある】 h【ある】物語、明日 【is】 a Mystery, but today 【is】 a gift.
分析: 元々は is という単語だけを一致させたかったのですが、他の単語に含まれる is とも一致しました。この問題を解決するには、境界区切り文字を使用します。つまり、正規表現内でいくつかのメタキャラクター を使用して、一致操作を実行する場所 (または境界) を示します。
2. 単語の境界
一般的に使用される境界は、修飾子 b によって指定される単語の境界で、単語の先頭と末尾を一致させるために使用されます。より正確には、単語の形成に使用できる文字 (文字、数字、アンダースコア、w に一致する文字) と単語の形成に使用できない文字 (W は文字に一致) の間の位置と一致します。 。前の例を見てみましょう: テキスト:昨日は歴史、明日は謎ですが、今日は贈り物です。
正規表現:bisb
結果:昨日【は】歴史、明日【is】 a Mystery, but today 【is】 a gift.
分析: 原文では、単語 is の前後にスペースがあり、パターン bisb と一致します (スペースは区切るために使用されます)言葉は登場人物の一人)。 History という単語には、その前後に h と t という 2 つの文字があるため、is も含まれます。これら 2 つの文字はいずれも b と一致しません。 単語の境界が一致しない場合は、B が使用されます。例: テキスト:色分けされたパスキーに表示されている9桁のIDを入力してください。
正規表現:B-B
結果:【9桁】を入力してください。 色分けされた ID [パスキー].分析: B-B は前後の単語境界ではないハイフンと一致します。 nine- のハイフンの前後にスペースはありません。数字とパスキーなので一致しますが、色分けされているハイフンの前後にスペースがあるため一致できません。
3.文字列境界単語の境界は、単語に関連する位置 (単語の先頭、単語の末尾、単語全体など) を一致させるために使用できます。文字列境界にも同様の目的がありますが、文字列に関連する位置 (文字列の先頭、文字列の末尾、文字列全体など) を一致させるために使用されます。文字列の境界を定義するために使用されるメタ文字は 2 つあります。1 つは文字列の先頭を定義するために使用される ^ で、もう 1 つは文字列の終わりを定義するために使用される $ です。
たとえば、XML ドキュメントの合法性をチェックしたい場合、合法な XML ドキュメントはすべて次のように で始まります:
テキスト:
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="ear"> </project>
正規表現:
^s*结果: 分析:^匹配一个字符串的开头位置,所以^\s*将匹配一个字符串的开头位置和随后的零个或多个空白字符,因为标签前面允许有空格、制表符、换行符等空白字符。 $元字符符的用法除了位置上的差异外,与^用法完全一样。比如,检查一个html页面是否以