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

URL中有效图片文件名的正则匹配及非法字符替换需求

解决正则匹配指定字符集并替换非法字符的问题

嘿,完全懂你翻了好多Stack Overflow帖子还是没搞定的烦躁!正则里的字符集规则确实容易让人绕晕,尤其是要准确包含那些带特殊含义的符号时。

针对你的需求——只保留a-z、A-Z、0-9以及.()~-_[]这些字符,把其他所有字符替换为空,这里给你一套靠谱的方案:

核心正则表达式

你需要用取反字符集来匹配所有不在允许列表里的字符,然后替换成空。正则表达式如下:

[^a-zA-Z0-9.()~_\-\[\]]

关键细节解释

  • ^ 在字符集[]内部表示“取反”,意思是匹配不在这个集合里的所有字符
  • 对于正则里有特殊含义的字符(比如[、]、-),必须用反斜杠\转义,避免被解析成正则语法的一部分
    • 比如-在字符集里默认表示范围(像a-z),所以要转义成\-;[和]是字符集的边界符号,也要转义成\[和\]

各语言示例(常见场景)

JavaScript

const filename = "12345677-fieberthermometer-fuer-schlaefe-und-ohr-digital-mapa-nuk...";
const cleanedFilename = filename.replace(/[^a-zA-Z0-9.()~_\-\[\]]/g, '');
console.log(cleanedFilename);

Python

import re

filename = "12345677-fieberthermometer-fuer-schlaefe-und-ohr-digital-mapa-nuk..."
cleaned_filename = re.sub(r'[^a-zA-Z0-9.()~_\-\[\]]', '', filename)
print(cleaned_filename)

小提示

如果你怕转义出错,也可以把-放在字符集的开头或者结尾,这样它就不会被当成范围符号,比如:

[^a-zA-Z0-9.()~_[\]-]

效果和转义版本完全一样,看你哪种写法更顺手啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:02:05