今回は正規表現位置マッチングのチュートリアル(コード付き)をお届けします。 正規表現チュートリアルの位置マッチングを使用する際の注意事項は何ですか?実際のケースを見てみましょう。
この記事の例では、正規表現チュートリアルの位置一致について説明します。参考として、次のようにみんなと共有してください。注: すべての例では、正規表現の一致結果はソース テキストの [] の間に含まれています。一部の例は、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 ドキュメントはすべて : Text:で始まります。
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="ear"> </project>
正则表达式:^\s*<\?xml.*?\?>
结果:
分析:^匹配一个字符串的开头位置,所以^\s*将匹配一个字符串的开头位置和随后的零个或多个空白字符,因为标签前面允许有空格、制表符、换行符等空白字符。
$元字符符的用法除了位置上的差异外,与^用法完全一样。比如,检查一个html页面是否以