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

Тема в разделе "Как сделать...", создана пользователем SocMaster, 22 июл 2013.

Статус темы:
Закрыта.
  1. SocMaster

    SocMaster aka Hakerok

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


    UPD:
    Спасибо! Работает.
    Попробую разобраться в этой странной регулярке))
     
  2. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    364
    Симпатии:
    204
  3. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    213
    Симпатии:
    47
    Сделал так preg_match_all ('/> \'(.*?)\'/is', $v, $match);
    Не работает((
    Пустой массив
     
  4. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    364
    Симпатии:
    204
    а что за "is" ?
    PHP:
    preg_match_all('/> \'(.*?)\'/'$v$match);
    echo 
    "<pre>";
    print_r($match);
    echo 
    "</pre>";
     
  5. allseo

    allseo Создатель

    Регистр.:
    26 июн 2013
    Сообщения:
    38
    Симпатии:
    10
    Если наличие отступов не гарантировано, то лучше так:
    Код:
    > *\'(.*?)\'
     
  6. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    213
    Симпатии:
    47
    Просто пустой массив((
     
  7. baltazorg

    baltazorg

    Регистр.:
    7 авг 2008
    Сообщения:
    203
    Симпатии:
    71
    Код:
    <?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);
    }
    ?>
     
    SocMaster нравится это.
  8. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.517
    Симпатии:
    1.368
    Чаще всего строчки такого типа, встречаются обёрнутыми в массив:
    <?php return array (
    'header_global' => 'Общие',
    'headersdfsdfsdf_global' => 'sfdsfsf',
    'dsfsdgdfgdsg' => 'Общsfsfsие',
    'sddfsdgf' => 'Общsfsfsfие',
    );

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

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