0
我目前正致力於將Poedit翻譯爲一個網站(Smarty)。要從.tpl文件中獲取所有文本,我使用正則表達式來獲取{t}和{/ t}之間的數據。這樣一個例子:正則表達式:讀取多個括號之間的值
{t}Password incorrect, please try again{/t}
正則表達式將讀取Password incorrect, please try again
並將其放置在一個.po文件。這一切工作正常。當它變得更加先進時它會出錯。
有時,{t}標籤之間的文本使用參數。這看起來像這樣:
{t 1=$email|escape 2=$mailbox}No $1 given, please check your $2{/t}
這也很好。
真正的問題開始當我使用括號內的參數裏面是這樣的:當它看到第一個右括號這樣的結果將是2=$mailbox}visit %1 or go to your %2
{t 1={site info='name'} 2=$mailbox}visit %1 or go to your %2{/t}
我正則表達式將會關閉。
我正則表達式是這樣的:
\{t.*?\}?[}]([^\{]+)\{\/t\}|\{t\}([^\{]+)\{\/t\}
正則表達式是一個Java程序中使用。
有沒有人有辦法解決這個問題?
修復的方法是寫一個解析器來處理嵌套括號。正則表達式不能很好地處理這類問題。 –