誰かがこれを手伝ってくれませんか...私は正規表現があまり得意ではなく、何日も頭を叩いています!
Smartyでは、変数$strにキャプチャされた中括弧に含まれるこの配列o値があります。
{capture assign=str}{literal}
{label1: \"value1\",label2: \"value2\", label3: \"value3\",label4: \"value4\"},
{label1: \"value1b\",label2: \"value2b\", label3: \"value3b\",label4: \"value4b\"},
...
{/literal}{/capture}
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
Update2 @ lorenzo:label1: \"value1\",label2: \"value2\"
私の文字列と一致する場合、次のように{から}までの新しい文字列で上書きします{label1: \"value1\",label2: \"value2\",label3: \"value3\",label4: \"value4\"}
内容:保存されているvalue1とvalue2がテスト文字列と一致するかどうかを確認し、正の場合は->他のすべての値(4,5,6)を新しい文字列値で更新します。
今、私が達成したいことがより明確になることを願っています。