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