当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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 \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。