![Notepad++ 正则表达式帮助](https://linux22.com/image/1459434/Notepad%2B%2B%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%B8%AE%E5%8A%A9.png)
我目前正在尝试寻找
\000\000\001\031704_news_release.pdf
我已经成功做到了
000\\000\\\d\d\d\\
我很确定我在这里做错了什么,因为我想用回车符(\r)来替换,但是当我运行替换时,最后一组 3 位数字被删除了。
因此期望的输出是
\000\000\001\
031704_news_release.pdf
作为参考,我正在运行以下内容作为我的替代品
000\\000\\\1\2\3\\\r
有任何想法吗?
答案1
好吧,您还没有捕获任何可供 \1 和 \2 和 \3 引用的内容,这就是为什么当您尝试在替换中引用它们时似乎丢失了一些东西。
在查找部分中使用圆括号(括号)括住要保留的 \1、\2 和 \3,如下所示
目前还不清楚你想做什么,但这里有一个例子
而且您不会只想在替换中使用 \r。我在示例中包含了您的错误,它不知何故生成了新行。但您应该使用 \n(unix 行结尾)或 \r\n(windows 行结尾)来生成新行/行分隔符/行终止符。
如果你想让你的正则表达式更简洁
寻找:(0{3}\\){2}\d+\\
替换:$0\r\n
请注意,您可以在示例正则表达式中轻松使用 $0。这意味着整个匹配
所以对于你的那个,你可以这样做
寻找:000\\000\\\d\d\d\\
代替:\0\r\n
答案2
尝试一下这个搜索文本:
000\\000\\(\d+)\\
或这个000\\000\\(\d\d\d)\\
这是您的替换文本:
000\\000\\\1\\\r
或者000\\000\\\1\\\n
为了替换正则表达式中的文本,您需要确定要替换的内容。您只是漏掉了括号。括号将括起来的正则表达式标识为“捕获”文本。请查看此处以获得更详细的解释: http://www.regular-expressions.info/brackets.html
另外,我建议看一下 Ultrapico 提供的免费正则表达式工具 Expresso:http://www.ultrapico.com/Expresso.htm