我有一个配置文件,其结构如下所示:
#comment1
key1 value1
#comment2
key-key2 value2
#comment3
key3 value3 value4
我一直在尝试使用以下代码在 PHP 中解析它:
$lines = explode(PHP_EOL, $string);
$config = [];
foreach ($lines as $l) {
preg_match("/^(?P<key>\w+)\s+(?P<value>.*)/", $l, $matches);
if (isset($matches['key'])) {
$config[$matches['key']] = $matches['value'];
}
}
但是我无法正确使用正则表达式,上面的正则表达式仅适用于带有 #comment1 的行,它不能正确解析 key-key2 并且 #comment3 key-value 有 2 个值,它们应该只是数组中的 1 个字符串.
我希望有的输出:
[
'key1' => 'value1',
'key-key2' => 'value2',
'key3' => 'value3 value4'
]
任何人都可以帮助我使用正则表达式?
呼唤远方
子衿沉夜