PCRE 正規表現で、文字の出現回数 (n) をカウントし、別の文字 (具体的には{
and }
) の n 回の出現を検出した後に検索を停止する方法はありますか。
これは、コード ブロックを取得するためです (内部にコード ブロックがネストされている場合とない場合があります)。
単純化すると、入力は 1 行の文字列になり、中括弧以外の文字は数字、コロン、コンマのみになります。コード ブロックの抽出を試みる前に、入力が次の基準を満たしている必要があります。
$regex = '%^(\\d|\\:|\\{|\\}|,)*$%';
すべてのブレースには一致するペアがあり、正しくネストされます。
文字列内のすべての文字をチェックし、中かっこの出現ごとにカウントするスクリプトを書き始める前に、これが達成できるかどうかを知りたいです。これらの文字列のサイズは数キロバイトになる可能性があるため、正規表現ははるかにメモリに優しくなります。
ありがとう、ムニズ。