1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-08 02:38:11 +09:00

lib/strings: init replaceString

This commit is contained in:
Gutyina Gergő 2025-05-27 22:21:08 +02:00
parent 8753210c68
commit b5720e2b3f
No known key found for this signature in database
3 changed files with 47 additions and 0 deletions

View file

@ -309,6 +309,7 @@ let
stringLength
substring
isString
replaceString
replaceStrings
intersperse
concatStringsSep

View file

@ -332,6 +332,41 @@ rec {
*/
concatLines = concatMapStrings (s: s + "\n");
/**
Given string `s`, replace every occurrence of the string `from` with the string `to`.
# Inputs
`from`
: The string to be replaced
`to`
: The string to replace with
`s`
: The original string where replacements will be made
# Type
```
replaceString :: string -> string -> string -> string
```
# Examples
:::{.example}
## `lib.strings.replaceString` usage example
```nix
replaceString "world" "Nix" "Hello, world!"
=> "Hello, Nix!"
replaceString "." "_" "v1.2.3"
=> "v1_2_3"
```
:::
*/
replaceString = from: to: replaceStrings [ from ] [ to ];
/**
Repeat a string `n` times,
and concatenate the parts into a new string.

View file

@ -91,6 +91,7 @@ let
range
recursiveUpdateUntil
removePrefix
replaceString
replicate
runTests
setFunctionArgs
@ -497,6 +498,11 @@ runTests {
expected = "/usr/include:/usr/local/include";
};
testReplaceStringString = {
expr = strings.replaceString "." "_" "v1.2.3";
expected = "v1_2_3";
};
testReplicateString = {
expr = strings.replicate 5 "hello";
expected = "hellohellohellohellohello";
@ -1728,6 +1734,11 @@ runTests {
];
};
testReplaceString = {
expr = replaceString "world" "Nix" "Hello, world!";
expected = "Hello, Nix!";
};
testReplicate = {
expr = replicate 3 "a";
expected = [