19インチの正規表現のマッチ

タイトル:マッチングと「*」正規表現のための機能を備えた実装「」。モード文字が「」 『*』任意の1つの文字を表し前の文字が(0時間を含む)任意の回数現れることができることを示しています。

デフ(文字列、パターン)re_match:

    lenの場合(文字列)== 0とlen(パターン)== 0:
        Trueを返す
    !場合LEN(文字列)= 0とlen(パターン)== 0または(LEN(文字列)= = 0とlen(パターン)= 0):!
        Falseを返す

    (パターン)lenの場合> 1とパターン[1] == '*':
        パターンであれば[0] ==文字列[0]または(パターン[0] = =とLEN(文字列)= 0) '':

            リターンre_match(文字列[1]、パターン[2])またはre_match(文字列[1]、パターン)またはre_match(文字列、パターン[2] )
        それ以外:
            リターンre_match(文字列、パターン[2:])

    の場合、文字列[0] ==パターン[0]または(パターン[0] ==とlen(文字列'')= 0):!

        リターンre_match(文字列[1]、パターン[1])は

    偽を返します

注意:

再帰的には、終了条件は次のとおりです。同時に、文字列のパターン文字列とは、最後に到達した場合、それは、マッチングを示しtrueを返し、あなたが同時に到着しない場合は、Falseが返されます。

モード、文字列がトラバースされる場合に、再帰的に文字列と次のビット列パターンを横切る「」;やや複雑に 『*』を横断する場合、必要と判断された 『*』文字列は、前者か同じですそうでない場合は、パターン文字列をスキップ「*」、次のトラバースは、同じ場合は、3例の再帰を持つことになり、「*」の時間、複数のマッチング、試合0と一致します。

おすすめ

転載: www.cnblogs.com/kingshine007/p/11354117.html