![]() |
StringRegExp: Получение массива где каждый элемент содержит Ini-секцию
Код:
#include <Array.au3> Если раскоментировать строчку с дополнительным вызовом StringRegExp, то будет видно каков мне нужен результат. P.S Строку с Pattern: Код:
(?s).*?(\[.*?\].*?)(?:(?:\r\n){2}|\[.*?\]|$) Дело в том что закоментированная строчка просто добавляет перевод строки (@CRLF) к имени каждой секции, в таком раскладе мой запрос работает, т.е если в ini-файле секции разделены между собой пустой строкой, то запрос актуален, а если строки нет, и секции сливаются, то мой запрос уже не работает - а нужно чтобы срабатывала вне зависимости от наличия пустых строк. |
Creat0R, пара паттернов, но в параметрах не должно быть квадратных скобок:
'\[[^]]+\][^[]+', '(?m)^\[[^]]+\][^[]+[^[\n\r]' |
Цитата:
|
Вопрос: а обязательно именно регулярными выражениями это делать?
|
Цитата:
|
Цитата:
P.S Не нужно плиз приводить примеры без RegExp, меня интересует только с ним, точка. Цитата:
|
Creat0R, решено?
|
amel27,
Ещё один вопрос в том же направлении. Нужно просто удалить целиком одну секцию (например [Sect 2]), с теми же условиями (чтобы также между секциями небыло лишних переводов строк). Прбовал подобрать по аналогии последнего шаблона, но ничего толкового не вышло :( - Я его если честно не понимаю до конца. |
Цитата:
Код:
$sRead = _ |
Цитата:
Код:
$sSection = "\[Sect 2\]" Я всё никак не привыкну к использованию (?m), которое задаёт другое свойство «^» и «$», поэтому «\z» заменяет конец всей строки в этом случае. Кстати, это в каком то роде замена IniDelete (без третьего параметра - key) - которая оставляет пустые строчки при удалении всей секции. |
Время: 03:49. |
Время: 03:49.
© OSzone.net 2001-