Elixir語言中 String.replace
相關用法介紹如下。
用法:
replace(subject, pattern, replacement, options \\ [])
@spec replace(t(), pattern() | Regex.t(), t() | (t() -> t() | iodata()), keyword()) ::
t()
返回通過用 replacement
替換 subject
中出現的 pattern
創建的新字符串。
subject
始終是一個字符串。
pattern
可以是字符串、字符串列表、正則表達式或編譯模式。
replacement
可以是字符串或函數,它接收匹配的模式並且必須將替換作為字符串或 iodata 返回。
默認情況下,它會替換所有出現的情況,但可以通過 :global
選項控製此行為;請參閱下麵的"Options" 部分。
選項
:global
- (布爾值)如果true
,所有出現的pattern
都被替換為replacement
,否則隻替換第一次出現的。默認為true
例子
iex> String.replace("a,b,c", ",", "-")
"a-b-c"
iex> String.replace("a,b,c", ",", "-", global: false)
"a-b,c"
模式也可以是字符串列表,替換也可以是接收匹配項的函數:
iex> String.replace("a,b,c", ["a", "c"], fn <<char>> -> <<char + 1>> end)
"b,b,d"
當模式是正則表達式時,可以在 replacement
字符串中給出 \N
或 \g{N}
以訪問正則表達式中的特定捕獲:
iex> String.replace("a,b,c", ~r/,(.)/, ",\\1\\g{1}")
"a,bb,cc"
請注意,我們必須轉義反斜杠轉義字符(即,我們使用 \\N
而不是僅使用 \N
來轉義反斜杠;對於 \\g{N}
也是如此)。通過給出 \0
,可以在替換字符串中注入整個匹配項。
也可以給出編譯模式:
iex> pattern = :binary.compile_pattern(",")
iex> String.replace("a,b,c", pattern, "[]")
"a[]b[]c"
當一個空字符串作為 pattern
提供時,該函數會將其視為每個字素之間的隱式空字符串,並且該字符串將被穿插。如果將空字符串作為replacement
提供,則將返回subject
:
iex> String.replace("ELIXIR", "", ".")
".E.L.I.X.I.R."
iex> String.replace("ELIXIR", "", "")
"ELIXIR"
相關用法
- Elixir String.replace_prefix用法及代碼示例
- Elixir String.replace_trailing用法及代碼示例
- Elixir String.replace_suffix用法及代碼示例
- Elixir String.replace_leading用法及代碼示例
- Elixir String.reverse用法及代碼示例
- Elixir String.contains?用法及代碼示例
- Elixir String.to_integer用法及代碼示例
- Elixir String.pad_trailing用法及代碼示例
- Elixir String.split_at用法及代碼示例
- Elixir String.valid?用法及代碼示例
- Elixir String.printable?用法及代碼示例
- Elixir String.trim_leading用法及代碼示例
- Elixir String.length用法及代碼示例
- Elixir String.first用法及代碼示例
- Elixir String.upcase用法及代碼示例
- Elixir String.graphemes用法及代碼示例
- Elixir String.at用法及代碼示例
- Elixir String.next_grapheme用法及代碼示例
- Elixir String.next_codepoint用法及代碼示例
- Elixir String.myers_difference用法及代碼示例
- Elixir String.trim_trailing用法及代碼示例
- Elixir String.normalize用法及代碼示例
- Elixir String.ends_with?用法及代碼示例
- Elixir String.downcase用法及代碼示例
- Elixir String.equivalent?用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 String.replace(subject, pattern, replacement, options \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。