2

(?<={% start %}).*?(?={% end %})2 つのカスタム タグ間のすべてに一致する正規表現があります。

問題は、タグ内にスペースがあり (例: "{% start %}")、\s+?条件を追加すると、正規表現が失敗することです。次のコードは機能しません: (?<={%\s+?start\s+?%}).*?(?={%\s+?end\s+?%})PHP でエラーが発生します:

preg_match_all(): Compilation failed: lookbehind assertion is not fixed length at offset 25

lookahead/lookbehind: を削除すると、同じ正規表現が機能します({%\s+?(start|end)\s+%})

お知らせ下さい。

4

1 に答える 1