0

私は最近、電子メール テンプレートとして機能する多数の php ファイルを継承しました。これらの php ファイルは、php 変数で連結された文字列で構成されています。テンプレート ファイルで使用されているすべての変数名を見つけて、これらの名前を現在使用している Jinja2 テンプレートの適切なタグに置き換えることができるようにしたいと考えています。テンプレートの 1 つからのスニペットを次に示します。

<?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 に答える