Spec-Zone.ru › Nushell

parse для строк

Извлекает столбцы из строковых данных с помощью простого шаблона или заданного регулярного выражения.

Сигнатура

> parse {flags} (pattern)

Флаги

  • --regex, -r: Использовать полный синтаксис регулярных выражений для шаблонов.
  • --backtrack, -b {int}: Установить максимальный предел возврата при поиске для регулярного выражения.

Параметры

  • pattern: Шаблон для поиска.

Типы входных и выходных данных:

входные данные выходные данные
строка таблица
список<любых значений> таблица

Примеры

Разобрать строку на два именованных столбца.

> "hi there" | parse "{foo} {bar}"
╭───┬─────┬───────╮
│ # │ foo │  bar  │
├───┼─────┼───────┤
│ 0 │ hi  │ there │
╰───┴─────┴───────╯

Разобрать строку, игнорируя столбец с именем _.

> "hello world" | parse "{foo} {_}"
╭───┬───────╮
│ # │  foo  │
├───┼───────┤
│ 0 │ hello │
╰───┴───────╯

Так интерпретируется первый пример в исходном коде.

> "hi there" | parse --regex '(?s)\A(?P<foo>.*?) (?P<bar>.*?)\z'
╭───┬─────┬───────╮
│ # │ foo │  bar  │
├───┼─────┼───────┤
│ 0 │ hi  │ there │
╰───┴─────┴───────╯

Разобрать строку с помощью шаблона именованной группы захвата fancy-regex.

> "foo bar." | parse --regex '\s*(?<name>\w+)(?=\.)'
╭───┬──────╮
│ # │ name │
├───┼──────┤
│ 0 │ bar  │
╰───┴──────╯

Разобрать строку с помощью шаблона группы захвата fancy-regex.

> "foo! bar." | parse --regex '(\w+)(?=\.)|(\w+)(?=!)'
╭───┬──────────┬──────────╮
│ # │ capture0 │ capture1 │
├───┼──────────┼──────────┤
│ 0 │          │ foo      │
│ 1 │ bar      │          │
╰───┴──────────┴──────────╯

Разобрать строку с помощью шаблона просмотра назад fancy-regex.

> " @another(foo bar)   " | parse --regex '\s*(?<=[() ])(@\w+)(\([^)]*\))?\s*'
╭───┬──────────┬───────────╮
│ # │ capture0 │ capture1  │
├───┼──────────┼───────────┤
│ 0 │ @another │ (foo bar) │
╰───┴──────────┴───────────╯

Разобрать строку с помощью шаблона атомарной группы просмотра вперёд fancy-regex.

> "abcd" | parse --regex '^a(bc(?=d)|b)cd$'
╭───┬──────────╮
│ # │ capture0 │
├───┼──────────┤
│ 0 │ b        │
╰───┴──────────╯

Разобрать строку, задав предел возврата при поиске fancy-regex вручную.

> "hi there" | parse --backtrack 1500000 "{foo} {bar}"
╭───┬─────┬───────╮
│ # │ foo │  bar  │
├───┼─────┼───────┤
│ 0 │ hi  │ there │
╰───┴─────┴───────╯

Примечания

Команда parse всегда использует регулярные выражения, даже если вы задаёте простой шаблон. Если указан простой шаблон, parse преобразует его в регулярное выражение.

Copyright © 2019–2026 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/parse.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API