Статья размещена автором Бетке Сергей Сергеевич

PowerShell: делим текст на абзацы

Простейшая задача, и простейшее решение к ней. Есть текстовый файл, в которым абзацы отделены друг от друга пустой строкой (по правилам MarkDown, например). И стоит задача – получить массив абзацев, в котором все строки в пределах абзаца собраны в одну, и каждый абзац – отдельным элементом.

$Text -split '(?:[ \t]*\r?\n[ \t]*){2,}' `
| % {
    $_ -replace '(?:[ \t]*\r?\n[ \t]*)', ' ';
};

И чуть красивее – функцией:

Filter Split-Para {
    <#
        .Synopsis
            Делит переданный текст на абзацы по правилам MarkDown. В качестве границы
            абзацев - пустая строка. Текст в пределах абзаца объединяет в одну строку.
    #>
    param (
        [Parameter(
            Mandatory = $true
            , ValueFromPipeline = $true
        )]
        [String]
        [AllowEmptyString()]
        [Alias('Text')]
        $InputObject
    )
    
    $InputObject -split '(?:[ \t]*\r?\n[ \t]*){2,}' `
    | % {
        $_ -replace '(?:[ \t]*\r?\n[ \t]*)', ' ';
    };
}

Ну как то так…

Опубликовать комментарий

XHTML: Вы можете использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags Связь с комментариями статьи:
RSS комментарии
Обратная ссылка