Spec-Zone.ru › Nushell

str replace для строк

Поиск и замена текста.

Подпись

> str replace {flags} (find) (replace) ...rest

Флаги

  • --all, -a: заменить все вхождения шаблона
  • --no-expand, -n: не расширять группы захвата (например, $name) в строке замены
  • --regex, -r: сопоставить шаблон как регулярное выражение во входных данных, а не как подстроку
  • --multiline, -m: многострочный режим регулярных выражений (подразумевает --regex): ^ и $ соответствуют началу/концу строки; эквивалентно (?m)

Параметры

  • find: шаблон для поиска
  • replace: строка замены
  • ...rest: Для входных данных в виде структуры данных, оперировать строками по заданным путям ячеек

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

Вход Выход
список<строка> список<строка>
запись запись
строка строка
таблица таблица

Примеры

Поиск и замена первого вхождения подстроки

>'c:\some\cool\path'|str replace'c:\some\cool''~'
~\path

Поиск и замена всех вхождений подстроки

>'abc abc abc'|str replace-a'b''z'
azcazcazc

Поиск и замена содержимого с группой захвата, используя регулярное выражение

>'my_library.rb'|str replace-r'(.+).rb''$1.nu'
my_library.nu

Поиск и замена всех вхождений строки поиска, используя регулярное выражение

>'abc abc abc'|str replace-ar'b''z'
azcazcazc

Поиск и замена всех вхождений строки поиска в таблице, используя регулярное выражение

> [[ColAColBColC]; [abcabcads]] |str replace-ar'b''z'ColAColC
╭───┬──────┬──────┬──────╮
│# │ ColA │ ColB │ ColC │
├───┼──────┼──────┼──────┤
│0│azc│abc│ads│
╰───┴──────┴──────┴──────╯

Поиск и замена всех вхождений строки поиска в записи, используя регулярное выражение

> { KeyA:abc, KeyB:abc, KeyC:ads } |str replace-ar'b''z'KeyAKeyC
╭──────┬─────╮
│KeyA│azc│
│KeyB│abc│
│KeyC│ads│
╰──────┴─────╯

Поиск и замена содержимого без использования параметра замены как регулярного выражения

>'dogs_$1_cats'|str replace-r'\$1''$2'-n
dogs_$2_cats

Использование захватов для изменения входного текста, используя регулярное выражение

>"abc-def"|str replace-r"(.+)-(.+)""${2}_${1}"
def_abc

Поиск и замена с использованием расширенного регулярного выражения

>'a successful b'|str replace-r'\b([sS])uc(?:cs|s?)e(ed(?:ed|ing|s?)|ss(?:es|ful(?:ly)?|i(?:ons?|ve(?:ly)?)|ors?)?)\b''${1}ucce$2'
asuccessfulb

Поиск и замена с использованием расширенного регулярного выражения

>'GHIKK-9+*'|str replace-r'[*[:xdigit:]+]''z'
GHIKK-z+*

Поиск и замена по отдельным строкам с использованием многострочного регулярного выражения

>"non-matching line\n123. one line\n124. another line\n"|str replace-am'^[0-9]+\. '''
non-matchingline
oneline
anotherline

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

Spec-Zone.ru

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