[英]PHP Regular expression to find string enclosed in __("STRING_TO_EXTRACT")
對不起,我真的很討厭正則表達式。 我需要收集我的應用程序中包含在此示例中的所有字符串: __("STRING") 該字符串也可以用單引號括起來。
我用下面的代碼試了一下:
$str = "__('match1') __("match2") do_not_include __('match3')";
preg_match_all("/__\(['\"](.*)['\"]\)/", $str, $matches);
var_dump($matches);
但它只能將整個行字符串與 1 個匹配項匹配。 示例結果如下。 請幫我編輯正則表達式,以便它應該能夠獲得 3 個匹配項。
match1') __("match2") do_not_include __('match3
在此先感謝您的幫助。
您可以使用:
$str = "__('match1') __(\"match2\") do_not_include __('match3')";
preg_match_all('/__\(([\'"])(.*?)\1\)/', $str, $matches);
print_r($matches[2]);
([\\'"])
將匹配單引號或雙引號並將其捕獲在組 #1 中。
.*?
將匹配 0 個或多個字符(非貪婪)
\\1
是上述捕獲組的反向引用,以確保字符串在 RHS 上用相同的引號關閉。
輸出:
Array
(
[0] => match1
[1] => match2
[2] => match3
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.