PHP Regular Expression匹配define()函数

时间:2010-08-20 18:42:52

标签: php regex string file-io

我正在翻译php脚本,希望通过自动化来获得一些时间 该文件包含非常多的行,如这些

define('LNG_NewsletterNameIsNotValid', 'Email Campaign name is not Valid');
define('LNG_UnableToCreateNewsletter', 'Unable to create an Campaña de Email');
define('LNG_HLP_NewsletterName', 'You must insert \\\'Custom Fields\\\' in the field.');
define('LNG_UnableToUpdateNewsletter', 'Unable to update '. LNG_xxx . ' from Email Campaign');

我想:

  • 打开每个php文件
  • 浏览每一行
  • 获取与每个define()
  • 对应的字符串
  • 放一个我应该写翻译的字段
  • 将新字符串保存到文件

我的脚本差不多完成了,除了从每一行获取字符串的部分。我指出几个例子,你可以看到翻译字符串可以包含对其他变量,引号等的引用。

我需要一个正则表达式,对吧? 任何人都可以帮我一个吗?

1 个答案:

答案 0 :(得分:2)

你可能更善于使用token_get_all。虽然正则表达式可能可以获得大部分,但它没有必要的复杂性来正确解析PHP(just like regexes can't parse html)。 token_get_all只会遗漏边缘情况,例如使用变量函数或eval'文本。

如果您进行语言翻译,可能值得调查gettext而非使用define