通过记事本++中的正则表达式为每个数字添加字符

use*_*230 10 notepad++ regex

我有一个非常基本的问题,我就是想不通。我确实有一个这样的文本文档:

This is 5 a test!
This 3 is a test!
This is a 9 test!
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

This is 5c a test!
This 3c is a test!
This is a 9c test!
Run Code Online (Sandbox Code Playgroud)

意味着我想为我找到的每个数字添加一个“c”。我试过这个:

Find what: [0-9]+]
Replace with: $1c
Search Mode: Regular expression
Run Code Online (Sandbox Code Playgroud)

但我显然做错了什么,因为它不起作用。帮助将不胜感激。谢谢!

LPC*_*hip 27

你几乎猜对了。

您想搜索([0-9]+)
并将其替换为$1c

您用于( )创建捕获组,因此 $1 有效。

或者,您可以替换为$0c替换,那么您就不需要使用捕获组。

  • 它工作得很好。非常感谢 ;) (2认同)
  • @BruceWayne 根据你的正则表达式风格,`\d` 可以匹配 Unicode 数字[来自其他脚本](https://www.fileformat.info/info/unicode/category/Nd/list.htm)。请注意,PCRE 并非如此,这显然是 Notepad++ 使用的。在任何情况下,如果我想要数字,我通常会倾向于使用 `\d`,但是如果我明确想要这些字符(例如,当抓取仅限于 ASCII 字符的定义格式时),我通常会使用 `[0-9]`。 (2认同)

Tot*_*oto 13

  • Ctrl+H
  • 找什么: \d+
  • 用。。。来代替: $0c
  • 检查环绕
  • 检查正则表达式
  • Replace all

给定示例的结果:

This is 5c a test!
This 3c is a test!
This is a 9c test!
Run Code Online (Sandbox Code Playgroud)