我有一个 PHP 数据库配置文件(在支持 PCRE 的代码编辑器中打开),其中包含用于生成连接字符串的各种引擎凭据。
现在正如我在问题标题中提到的那样,我想匹配某个字符串“DB_DATABASE”,前提是在 n 行(比如说 3)之前存在 'mysql',如下所示:
....
....
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'anydb'),
....
....
如果我在 3 行之前说它不应该匹配 4 行之前的“mysql”,即它不应该匹配'mysql' => [
。请注意,除了此处提到的之外,还有其他 DB 引擎连接详细信息,因此需要匹配 mysql 并且仅当它恰好出现在上面 3 行时DB_DATABASE
。
我尝试了一些复杂的正则表达式,但没有一个能给我想要的,让我提一个我认为至少接近但徒劳的:
^[\S\s]*?mysql\S*$(?:\n.*){3}\S*DB_DATABASE
感谢任何努力帮助解决此问题的人...