使用正则表达式

时间:2019-01-23 13:20:22

标签: php regex laravel

我正在做一个laravel项目,我需要扩展translations:find的工匠命令,该命令是从barryvdh / laravel-translation-manager方法findTranslations中派生的。默认正则表达式如下:

$pattern = "[^\w|>]".           // Must not have an alphanum or _ or > before real method
"(".implode('|', $functions) .")".   // Must start with one of the functions
"\(".                            // Match opening parenthesis
"[\'\"]".                        // Match " or '
"(".                             // Start a new group to match:
"[a-zA-Z0-9_-]+".                // Must start with group
"([.|\/][^\1)]+)+".              // Be followed by one or more items/keys
")".                             // Close group
"[\'\"]".                        // Closing quote
"[\),]";                         // Close parentheses or new parameter

默认功能将文件加载为如下字符串:

<?php\n \n echo trans('testing.here-should-be-some-argument', ['some_argument' => '1']);

并找到“ testing.here-should-be-argument”部分以供以后存储。

我的目标是调整功能以使其工作如下:

  1. 首先选择字符串的整个testing.here-should-be-some-argument', ['some_argument' => '1']部分。
  2. 从字符串中提取['some_argument' => '1']
  3. 从该字符串中获取some_argument

我目前在第一步中试图弄清楚如何在字符串中同时考虑单引号和双引号。

我的最终结果是,我可以尝试将匹配参数名称(例如“ some_argument”)与翻译“此处应为某些参数”的键相匹配,如果找到,则替换字符串中的参数,例如这个“这里应该是:some_argument”,以便翻译给定文本的人会知道它必须将其用作参数。

0 个答案:

没有答案