0

我最近继承了许多用作电子邮件模板的 php 文件。这些 php 文件由与 php 变量连接的字符串组成。我想找到模板文件中使用的所有变量名称,以便能够用我现在使用的 Jinja2 模板的正确标签替换这些名称。以下是其中一个模板的片段:

<?php if($lang == 'EN'){ 
################################# ENGLISH ####################################-->
$html1 = '

Dear '.$firstname.',
<br /><br />
We are contacting you in regards your recent order # '.$custmordernum.'. TO COMPLETE YOUR ORDER WE NEED 
ADDITIONAL INFORMATION FROM YOU.  Your order will be on hold until WE RECEIVE THE FOLLOWING 
}
else { 
################################# SPANISH ####################################-->

我使用以下正则表达式取得了有限的成功:

(\'.*?\..*?\..*?\')

我想匹配期间之间的所有内容。谁能建议一个更好的正则表达式?

4

3 回答 3

0

尝试/\.\$(.*)\./

我使用http://www.solmetra.com/scripts/regex/index.php来尝试它,我能够匹配firstname并且custmordernum

于 2013-07-11T18:22:16.650 回答
0

如果您使用以下内容,您也不必处理期间

(?<=\.)\$\w+?(?=\.)

于 2013-07-11T18:30:25.943 回答
0

像这样的东西:

text = "$email = 'hello '.$user1_35.' we would like to annoy you '.$Tod-ay.' for 20 minutes.';"
res = re.findall("'\.(\$[\w-]*)\.'", text)
print res #['$user1_35', '$Tod-ay']

不过老实说,你可能最好手动完成。这仅适用于这种特定格式,并且不处理行首/行尾的变量连接,如果句点/引号/变量之间有空格,可能还有其他奇怪的情况。

于 2013-07-11T18:36:28.520 回答