2015-07-03 51 views
2

我有這樣的內容,例如:正則表達式解析方法與參數

<?php echo $this->translate("Any text", "Any text next", "base-key") ?> Next string bla bla 
string bla <?php echo $this->translate("SO Any text") ?> 
enter code heretext bla <?php echo $this->translate("and string", null, "article-key") ?> 

所以,我需要一個正則表達式的方法「翻譯」的第一和第三個參數匹配引號之間的文本。

輸出可能是這個樣子:

array (
    array (
    0 => Any text, 
    1 => base-key 
), 
    array (
    0 => SO Any text, 
    1 => null 
), 
    array (
    0 => and string, 
    1 => article-key 
), 
) 

我想這樣表達:

/translate\(["\'](.*?)["\']/s 

我剛剛得到的第一個參數字符串的方法 「翻譯」

+1

告訴我們你的代碼負責正則表達式加工 –

回答

3

得到了一些成功與此:translate\(\"?(.*?)\"?(?:,\s?(?:\"?.*?\"?))?(?:,\s?\"?(.*?)\"?)?\)translate\((?:\"(.*?)\")(?:,\s?(?:\"?.*?\"?))?(?:,\s?\"(.*?)\")?\)

可以試一下 - 我寫它的方式,還將囊括第一和第三的參數,如果他們不加引號,您可以通過刪除在第一和第三個參數報價的?,使第一個參數可選撤消這裏:https://regex101.com/r/kG9eF3/1

+0

它的工作,謝謝。 – kevas