You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Erlang中检查字符串是否含指定字符并替换?

在Erlang中替换字符串里的"*"为"%"的实现方案

嗨,这个需求在Erlang里实现起来很简单,我给你两种实用的方案,适配不同场景:

方案一:使用string:replace/3(Erlang 20+推荐)

从Erlang 20版本开始,string模块提供了直接的替换函数,用法非常直观:

% 定义原字符串
OriginalString = "John*",
% 替换所有出现的"*"为"%"
ReplacedString = string:replace(OriginalString, "*", "%", all),
% 打印结果
io:format("替换后的字符串:~s~n", [ReplacedString]). % 输出:替换后的字符串:John%

这里的all参数是关键,如果省略它,默认只会替换第一个出现的"*"。要是你只需要替换第一个匹配项,直接写成string:replace(OriginalString, "*", "%")就行。

方案二:使用re:replace/4(全版本兼容)

如果你的Erlang版本比较旧,或者需要正则表达式的灵活处理,可以用re模块的替换函数:

OriginalString = "John*",
% 注意:正则中"*"是特殊元字符,需要用\\转义
ReplacedString = re:replace(OriginalString, "\\*", "%", [{return, list}]),
io:format("替换后的字符串:~s~n", [ReplacedString]). % 输出:替换后的字符串:John%
  • \\*是转义后的星号,避免被正则引擎当成量词解析
  • {return, list}指定返回值为字符串类型(Erlang里字符串本质是字符列表),如果不加这个参数,默认会返回二进制类型(binary)

如果你只想替换第一个"*",可以把选项改成[{return, list}, {global, false}]。

内容的提问来源于stack exchange,提问作者Rui Motta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:05:08