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