如何使用string.replace()将字符串中的[、]、.替换为下划线
实现特殊字符替换的方案
核心正则写法
你需要匹配三个特殊字符的正则模式为/[\[\].]/g,各部分说明如下:
- 最外层
[]是正则字符组语法,表示匹配组内的任意一个字符 - 组内的
\[、\]是对[、]的转义,避免被识别为字符组的边界语法 .放在字符组内时默认就是普通字符,不需要额外转义,也可以写作\.不影响匹配结果- 末尾的
g是全局匹配标记,确保替换所有命中的字符,而非仅替换第一个匹配项
不同语言的实现示例
JavaScript
const originalStr = "测试[字符].包含]特殊符号"; const result = originalStr.replace(/[\[\].]/g, '_'); // 输出结果:测试_字符__包含_特殊符号
如果不想处理正则转义,也可以用普通替换的写法:
const result = originalStr.replaceAll('[', '_').replaceAll(']', '_').replaceAll('.', '_');
Python
Python的re.sub默认就是全局替换,不需要加g标记:
import re original_str = "测试[字符].包含]特殊符号" result = re.sub(r'[\[\].]', '_', original_str)
Java
public class ReplaceDemo { public static void main(String[] args) { String originalStr = "测试[字符].包含]特殊符号"; String result = originalStr.replaceAll("[\\[\\].]", "_"); // 注意Java字符串里反斜杠需要双重转义,所以写为\\[和\\] } }
内容的提问来源于stack exchange,提问作者Jonathan Wood
相关产品推荐
相关产品推荐

