Помогите составить регулярку

Статус
В этой теме нельзя размещать новые ответы.

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
Есть файл с такими строками
'header_global' => 'Общие',
'headersdfsdfsdf_global' => 'sfdsfsf',
'dsfsdgdfgdsg' => 'Общsfsfsие',
'sddfsdgf' => 'Общsfsfsfие',
и тп
Можно составить регулярку на получения слов которые находятся в скобках после =>


UPD:

Спасибо! Работает.
Попробую разобраться в этой странной регулярке))
 
Сделал так preg_match_all ('/> \'(.*?)\'/is', $v, $match);
Не работает((
Пустой массив
 
а что за "is" ?
PHP:
preg_match_all('/> \'(.*?)\'/', $v, $match);
echo "<pre>";
print_r($match);
echo "</pre>";
 
Если наличие отступов не гарантировано, то лучше так:
Код:
> *\'(.*?)\'
 
Просто пустой массив((
 
Код:
<?php function __replacer ($str) {
$str=preg_replace("~^.*?=>\s+[\'](.*?)[\'].*$~si","$1",$str);
return $str;
}
$filein= "massiv.txt"; //файл со строками, которые надо обработать
$strings = file($filein);
foreach($strings as $string){
$string= __replacer ($string);
$fileout = fopen('massiv_new.txt', "a");fwrite($fileout ,$string."\r\n");fclose($fileout);
}
?>
 
Чаще всего строчки такого типа, встречаются обёрнутыми в массив:
<?php return array (
'header_global' => 'Общие',
'headersdfsdfsdf_global' => 'sfdsfsf',
'dsfsdgdfgdsg' => 'Общsfsfsие',
'sddfsdgf' => 'Общsfsfsfие',
);

В таком случае достаточно будет написать $items = require($fno); где $fno = пути к файлу, а в $items будет нужный тебе массив.

Поскольку сообщением выше приведён рабочий код тему закрываю.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху