在 Notepad++ 扩展搜索模式中匹配数字

在 Notepad++ 扩展搜索模式中匹配数字

Notepad++ 手册对于扩展搜索模式中使用的数字特殊字符的说明相当模糊。手册上说:\d### - 十进制值(介于 000 和 255 之间),但实际上输入“\d###”并不会匹配任何内容。

我想做的是更换

if VarA == 12
  VarB = 1

if VarA == 12
  Var12=1
  VarB=1

答案1

我正在确切地同样的问题!我找到了一个解决方法。首先,使用“扩展”搜索模式(即所谓的“临时模式”)查找所有换行符并将其替换为文本中不存在的随机字符。例如,我将所有换行符替换为波浪号(“~”)。然后,切换到“正则表达式”搜索模式,现在您可以通过替换的字符引用换行符来搜索换行符。使用查找和替换操作文本后,将随机字符切换回换行符。就是这样!

答案2

我只是在寻找这个问题的答案。在查看了 NP++ Wiki 之后,我认为\d它不符合我们想要的匹配内容。

\d
字节的十进制表示,由 0-9 范围内的 3 位数字组成

它不匹配常规数字字符,而是匹配字节码。后面跟\d一个 3 位数字,它将匹配相应的 ASCII 字符。

换句话说,\d032匹配空格字符、\d033匹配感叹号等等。请参阅此处获取代码列表

不幸的是,这意味着您不能仅使用扩展选项匹配“任何数字”,您必须使用正则表达式并找到解决新行问题的方法。

答案3

if VarA == 12  
    VarB = 1

if VarA == 16  
    VarB = 0

使用正则表达式查找/替换

查找内容:if VarA == ([0-9]+)
替换为:if VarA == \1 \n\t Var\1=1

运行“全部替换”

结果:

if VarA == 12  
     Var12=1  
    VarB = 1

if VarA == 16  
     Var16=1  
    VarB = 0 

这就是您所寻找的吗?

答案4

使用 notepad++ 中正则表达式搜索模式中的字符类,您可以使用以下语法 [az] 搜索存在于特定范围内的字符,因此在上例中,您可以搜索从 a 到 z 的任何字符。因此,使用相同的方法,您可以在搜索栏中输入 [0-9] 搜索从 0 到 9 的一个十进制数字。例如,如果您需要搜索包含多个十进制数字(例如 3 个十进制数字)的数字,您可以在搜索栏中输入以下内容 [0-9][0-9][0-9]

以下是 notepad++ 用户手册的链接,是本答案的参考 https://npp-user-manual.org/docs/searching/#regular-expressions

相关内容