當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Elixir Regex.replace用法及代碼示例


Elixir語言中 Regex.replace 相關用法介紹如下。

用法:

replace(regex, string, replacement, options \\ [])
@spec replace(t(), String.t(), String.t() | (... -> String.t()), [term()]) ::
  String.t()

接收一個正則表達式、一個二進製和一個替換,返回一個新的二進製,其中所有匹配項都被替換替換。

替換可以是字符串或函數。該字符串用作每個匹配項的替換,它允許通過 \N\g{N} 訪問特定的捕獲,其中 N 是捕獲。如果使用\0,則插入整個匹配項。請注意,在正則表達式中,反斜杠需要轉義,因此在實踐中您需要使用 \\N\\g{N}

當替換是一個函數時,該函數可能具有 N 個參數,其中每個參數映射到一個捕獲,第一個參數是整個匹配項。如果函數需要的參數多於找到的捕獲,則剩餘的參數將收到 ""

選項

  • :global - 當 false 時,僅替換第一次出現(默認為 true )

例子

iex> Regex.replace(~r/d/, "abc", "d")
"abc"

iex> Regex.replace(~r/b/, "abc", "d")
"adc"

iex> Regex.replace(~r/b/, "abc", "[\\0]")
"a[b]c"

iex> Regex.replace(~r/a(b|d)c/, "abcadc", "[\\1]")
"[b][d]"

iex> Regex.replace(~r/\.(\d)$/, "500.5", ".\\g{1}0")
"500.50"

iex> Regex.replace(~r/a(b|d)c/, "abcadc", fn _, x -> "[#{x}]" end)
"[b][d]"

iex> Regex.replace(~r/a/, "abcadc", "A", global: false)
"Abcadc"

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Regex.replace(regex, string, replacement, options \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。