0

次の例は、先読みアサーションを条件として使用する方法です。PHPのマニュアルで見つけました:http ://www.php.net/manual/en/regexp.reference.conditional.php

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} )

この正規表現についての説明は次のとおりです。

条件は、文字以外のオプションのシーケンスとそれに続く文字に一致するポジティブ先読みアサーションです。つまり、件名に少なくとも1つの文字が含まれているかどうかをテストします。文字が見つかった場合、件名は最初の選択肢と照合されます。それ以外の場合は、2番目と照合されます。このパターンは、dd-aaa-ddまたはdd-dd-ddの2つの形式のいずれかの文字列と一致します。ここで、aaaは文字、ddは数字です。

この例の条件として先読みアサーションを使用する理由を誰かに教えてもらえますか?ルックビハインドアサーションを使用しないのはなぜですか?このような条件として使用すると、件名の文字列とどのように一致するかわからないため、混乱します。前もって感謝します!

4

1 に答える 1