任何人都可以請幫助我這個......我不是很擅長正則表達式,並且自從天以來我一直在敲我的腦袋!Smarty regex_replace與大括號表達式匹配的表達式
在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 @羅倫佐:當label1: \"value1\",label2: \"value2\"
我的字符串我有一個新的字符串從{到}覆蓋它匹配這樣{label1: \"value1\",label2: \"value2\",label3: \"value3\",label4: \"value4\"}
它所做的:如果爲正檢查存儲值1和值2符合我的測試字符串 - >用我的新字符串值更新所有其他值(4,5,6)。
希望現在更清楚我想達到什麼。
爲什麼你要讓它在Smarty的?你不能用PHP或JS做它嗎(它似乎是JSON,不是嗎?)? – 2012-03-22 17:23:48
我想我可以使用PHP來寫一個聰明的插件。我在我的smarty模板中收到這些數據。 – Tron 2012-03-22 18:00:32
好的。通過更好的縮進改善您的問題,不僅提供輸入,還提供確切的期望輸出。 – 2012-03-22 18:15:14