Perl正規表現

DDD
DDDオリジナル
2023-06-30 15:48:473290ブラウズ

Perl正規表現

正規表現は、テキストの照合と処理のための強力なツールです。Perl 言語の正規表現は、高い柔軟性と機能性を備えています。 Perl は標準の正規表現構文を使用し、それを拡張することで、Perl 正規表現が多くのプログラミング タスクに最適なツールになっています。

Perl 正規表現構文は PCRE (Perl 互換正規表現) に基づいており、基本的な一致、置換、その他の機能をサポートするだけでなく、より複雑なテキスト モデルを処理するための一連の機能と修飾子も提供します。

1. 基本構文

Perl では、正規表現は /pattern/ のようにスラッシュ文字 (/) で囲まれます。スラッシュ間の部分は、一致させたいパターンです。

直接一致:

最も単純な正規表現は直接一致です。たとえば、/hello/ を使用すると、文字列内の「hello」と一致します。

Perl では、文字列内にパターンと完全に一致する内容がある場合、一致した位置 (インデックス) が返されます。一致するものが見つからない場合は、unknown が返されます。

メタキャラクター:

Perl 正規表現には、特別な意味を持つメタキャラクターと呼ばれる特殊文字がいくつかあります。例:

(ピリオド): 改行文字を除く任意の文字と一致します。

(アスタリスク): 前の要素と何度でも一致します。

(プラス記号): 前の要素と 1 回以上一致します。

(疑問符): 前の要素と 0 回または 1 回一致します。

(キャレット): 文字列の先頭と一致します。

(ドル記号): 文字列の末尾と一致します。

Character クラス:

Character クラスは、一連の文字の 1 つと一致するために使用されます。 Perl では、文字クラスは角括弧 ([]) で囲まれ、一致する文字がリストされます。例:

[abc]: 「a」、「b」、「c」のいずれかの文字と一致します。

[a-z]: 任意の小文字と一致します。

[^a-z]: 小文字ではない任意の文字と一致します。

Quantifier:

Quantifier は、一致する文字の出現数を指定するために使用されます。 Perl では、量指定子は中括弧 ({}) を使用して表されます。

例:

{n}: n 回出現する前の要素と一致します。

{n,}: 少なくとも n 回出現する前の要素と一致します。

{n,m}: 少なくとも n 回、最大で m 回出現する前の要素と一致します。

エスケープ文字:

正規表現では一部の文字が特別な意味を持ちます。これらの特殊文字自体を一致させたい場合は、エスケープ文字を使用する必要があります。 Perl では、エスケープ文字はバックスラッシュ (\) を使用して表されます。

例:

.: ピリオド文字 (.) 自体と一致します。

\: バックスラッシュ文字 (\) 自体と一致します。

2. 高度な機能

Perl 正規表現には、基本的な構文に加えて、より複雑なテキスト パターンを処理できる高度な機能もいくつか用意されています。

グループ化と参照:

正規表現では、括弧 (()) を使用して要素のセットをグループ化できます。このようにして、これらの要素を全体として照合または処理できます。

たとえば、/(ab) / は、複数の連続する "ab" に一致します。

さらに、バックスラッシュの後にグループ番号文字 (\1、\2 など) を使用して、テキストをさらに処理するために前のグループの内容を参照することもできます。

たとえば、/(ab)\1/ は、同じ「ab」が連続して出現するものと一致します。

ゼロ幅アサーション:

ゼロ幅アサーションは、文字そのものではなく抽象的な位置と一致する機能です。 Perl の正規表現では、一般的に使用されるゼロ幅アサーションがいくつか提供されています。

(?=pattern): 肯定的な事前チェック。パターンの前の位置と一致します。

たとえば、/hello(?=world)/ は、「hello」の後に「world」が続くものに一致します。

(?!pattern): 正負の事前チェック。マッチングはパターンの前の位置と一致しません。

たとえば、/hello(?!world)/ は、後に「world」が続かない「hello」と一致します。

(?<=パターン): 逆ポジティブ事前チェック。パターンの後の位置と一致します。

たとえば、/(?<=hello)world/ は、「world」の後に「hello」が続くものと一致します。

(?

たとえば、/(?

置換と抽出:

テキストの一致に加えて、置換および抽出操作に正規表現を使用することもできます。

置換: 置換演算子 (s///) を使用して、一致したコンテンツを指定した文字列に置き換えます。

たとえば、$str =~ s/pattern/replace/ は、$str 内の一致したパターンを replace に置き換えることができます。

抽出: キャプチャ グループ化を使用して、一致した部分文字列を抽出します。

たとえば、文字列 $str がある場合、$str =~ /(pattern)/ を使用して、pattern が存在する部分文字列を照合して抽出できます。

要約:

Perl 正規表現は、柔軟な構文と豊富な機能を備えた強力なツールであり、テキスト処理で広く使用されています。正規表現を使用すると、テキストの一致、置換、抽出などの操作を簡単に実行できるため、プログラミングの効率と柔軟性が向上します。 Perl 正規表現を使用する場合は、さまざまな基本構文と高度な機能を理解し、それらを上手に活用して実際的な問題を解決する必要があります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。