文本查找替换
替换单词、短语或正则匹配,一次最多二十条规则,全词匹配对任何字母表都有效。
把文件拖到这里
.txt, .md, .csv, .json, .html · 最大5 MB
如何替换
- 1
粘贴文本
或拖入.txt、.md、.csv、.json或.html文件。
- 2
写明要查找什么、替换成什么
添加更多组规则,一次完成多处替换。
- 3
替换并复制
结果显示在下方,可以直接复制或下载。
对俄语也有效的全词匹配
几乎所有查找替换工具的全词模式都用正则表达式的单词边界,而这个边界是按A到Z、0到9和下划线这些字符定义的。在其他任何字母表里,它都会落在错误的位置,或者什么都匹配不到:在西里尔字母里搜索全词会失败。这里的全词模式改用Unicode的字母和数字类别构建,所以对待俄语、希腊语、阿拉伯语和带重音的拉丁字母,与对待英语完全一样,而且仍然做到你想要的事:匹配cat,但不碰cats。
普通模式下,美元符号就是美元符号
在替换字符串里,$1表示第一个捕获组,$&表示整个匹配。这在正则模式里很有用,在其他地方却是个陷阱:把价格$100当作替换内容输入,简单的工具会吃掉其中一部分。这里在普通模式和全词模式下会自动转义美元符号,输入什么就得到什么;特殊含义只在你主动选择的正则模式里生效。
一次运行多条规则,按顺序执行
最多二十组查找替换规则依次运行,顺序很重要:第一条的输出就是第二条的输入。这是有意这样设计的,值得利用:先把某些内容规范化,再处理规范化后的结果,对文件只需处理一遍。结果出乎意料时,也要先检查这一点:如果第二条规则匹配到了第一条规则产生的内容,你会在输出里而不是原文里看到它。
正则表达式不会卡死这个标签页
有些模式在相当短的输入上也要花指数级的时间。典型例子是一个重复组嵌套在另一个重复里,面对二十五个字符就可能运行到没人愿意等,而正则引擎一旦开始,就无法从外部中断。所以这里的正则替换在单独的工作线程里运行,限时三秒,时间一到就销毁整个线程。页面保持响应,你会看到清楚的提示,而不是一个卡死的标签页;提示建议改用普通文本搜索,多数情况下这个建议都是对的。
文本不会离开浏览器
读取文件、匹配和替换都在你的设备上完成。没有上传,没有服务器,无需账号,也不保存任何内容;就连运行正则表达式的工作线程也在你的浏览器里。关闭标签页,一切都会消失。
常见问题
正则模式怎么用?
搜索框里的内容会作为启用Unicode支持的JavaScript正则表达式使用。捕获组、后行断言和\p{L}这类属性转义都可以用;模式无效时,会显示引擎自身的错误信息,而不是笼统的失败提示。
$1是什么意思?
在正则模式下,它把第一个捕获组插入替换内容,所以搜索(\w+) (\w+)并替换为$2, $1,就能交换两个单词。在普通模式和全词模式下,美元符号就是字面字符。
全词匹配和普通搜索有什么区别?
普通搜索会在cats和concatenate里找到cat。全词匹配只在两侧都不是字母、数字或下划线的位置匹配,适用于任何字母表,不只是拉丁字母。
替换为什么因超时而停止?
模式运行超过了三秒,这几乎总是因为(a+)+这样的嵌套重复,让引擎尝试指数级数量的可能。去掉嵌套重复重写模式,或者改用普通文本搜索,就能解决。
能一次替换几个不同的词吗?
能,最多二十组。它们按顺序运行,后面的规则看到的是前面规则处理后的文本。
文本会上传吗?
不会。一切都在浏览器中运行,不会向服务器发送任何内容。
能处理多大的文件?
最大5 MB或一百万个字符。更大的文件请先用“文本拆分”处理。