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