PHPの正規表現に問題があります。私が達成しようとしているのは、文字列内にプレースホルダトークンを置き、それを値に置き換えることです。正規表現 - すべてをXから次のYまでキャプチャします。
私は次の構文を使用しています。正規表現を少し経験を持つ
Hello {{ username }}! Your order ID is {{ order }}.
、私はRegex101のオンライン正規表現のテスト環境を使用して、次の式を思い付きました。私は、単一の行に複数のトークンを使用して式の巨大な欠陥を実現するまで、うまく働いた
({{(?:.*?)(?:property)(?:.*?)}})
。私は表現がどのように評価されているのかを理解しており、下の画像に私の理解でラベルを付けました(私が間違っていれば私を修正します)。
私は遠く離れので、任意のヘルプは高く評価され、私が達成しようとしているが、私は途方に暮れてよ何からではないと思うしたいと思います。
パターンに含まれるトークン内のプロパティ名が必要です。プロパティの上の画像では、email
です。
ありがとうございました!
Regex101:https://regex101.com/r/7Ezep5/1
@ chris85 - 投稿をRegex101の例へのリンクで更新しました。 – connorb
正しいPHP変数を使用するのではなく、なぜこのひどい構文を使用しているのかと聞かれますか? – junkfoodjunkie
https://regex101.com/r/7Ezep5/2のようなやり方で 'preg_replace_callback'を使って値があなたのプロパティであるかどうかを調べることができます。 – chris85