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