#php #regex
#php #регулярное выражение
Вопрос:
У меня есть файл .h, который содержит сотни строк кода. Я хочу вернуть строки из переменной.
string PackageToRun[][] = { {"M16.1","M16.1EP1","M16.2","M17"},
{"Tv16.2","Tv17","Ta17","Ta16.2 MOpenTAS","Tv17.1","Ta17.1","T16.2","T16.2c"} };
Возможно ли написать регулярное выражение на PHP, которое возвращает «M16.1», «M16.1EP1» … ?!
Если это возможно, будет ли это работать, если я добавлю больше строк в PackageToRun ?!
Комментарии:
1. Это возможно, и да, если вы напишете это правильно, это будет работать, даже если вы добавите больше строк в PackageToRun!
Ответ №1:
Эй, это похоже на JSON!
<?php
$file = '
string PackageToRun[][] = { {"M16.1","M16.1EP1","M16.2","M17"},
{"Tv16.2","Tv17","Ta17","Ta16.2 MOpenTAS","Tv17.1","Ta17.1","T16.2","T16.2c"} };
';
if( preg_match('#string PackageToRun[][] = ({.*});#is', $file, $matches)) {
$data = json_decode(str_replace(array('{','}'), array('[',']'), $matches[1]));
print_r($data);
}
Вывод:
Array (
[0] => Array (
[0] => M16.1 [1] => M16.1EP1 [2] => M16.2 [3] => M17
)
[1] => Array (
[0] => Tv16.2 [1] => Tv17 [2] => Ta17 [3] => Ta16.2 MOpenTAS
[4] => Tv17.1 [5] => Ta17.1 [6] => T16.2 [7] => T16.2c
)
)