誰もがこれを手伝ってくれますか...正規表現はあまりよくありません。私は数日から頭を叩いています!Smarty regex_replaceは中括弧で一致する式
はSmartyの、私は値Oこの配列は、変数$ STRに捕捉中括弧内に含まれている:
{capture assign=str}{literal}
{label1: \"value1\",label2: \"value2\", label3: \"value3\",label4: \"value4\"},
{label1: \"value1b\",label2: \"value2b\", label3: \"value3b\",label4: \"value4b\"},
...
{/literal}{/capture}
IがLABEL1場合({へ}から)ラベルおよび一連の値を上書きする必要がある:\」をvalue1 \ "は私の文字列と一致します。
これは私がこれまでに得たものである...
{capture assign=foo_regex}{literal}/[{label1:\s*\\"{/literal}{$smarty.get.value1}{literal}\\",\s*label2:\s*\\"{/literal}{$smarty.get.value2}{literal}\\"].*[}]/g{/literal}{/capture}
{capture assign=foo_replace}{literal}{-my new string-}{/literal}{/capture}
{$str|regex_replace:$foo_regex:$foo_replace}
そこに任意のウィザードが助けてください? ありがとうございます!
更新: 私は正しい表現で出てきましたが、Smarty正規表現ではうまくいきません...何が間違っていますか? http://regexr.com?30dnp
ロレンツォ@アップデート2:label1: \"value1\",label2: \"value2\"
は私の文字列に一致したとき、私はこの{label1: \"value1\",label2: \"value2\",label3: \"value3\",label4: \"value4\"}
のような{に}から新しい文字列で上書きそれはどういう:保存value1とvalue2のは、私のテスト文字列と一致する場合は正の場合は、チェック - >他のすべての値(4,5,6)を新しい文字列値で更新します。
私が達成したいことが今より明確になりたいと思っています。
を使用すると、Smartyの中でそれをしなければならないのはなぜ?あなたはPHPやJSでそれを行うことはできません(それはJSONと思われますか?) –
私はスマートなプラグインを書くためにPHPを使うことができたと思います。私はスマートなテンプレートでそのデータを受け取ります。 – Tron
より良いインデントで質問を改善し、入力だけでなく正確な出力を提供します。 –