Regex 如何在记事本++;
我有很多这样的数字Regex 如何在记事本++;,regex,notepad++,Regex,Notepad++,我有很多这样的数字 rocket123 firefly1000 attack577 有没有使数字颠倒的正则表达式 rocket321 firefly0001 attack775 这是可行的一个小技巧 步骤1。为尚未反转的数字添加标记 查找: 替换: $1§$2 $1$3§$2 $1 您可以选择其他标记,而不是§ 步骤2。请务必用以下设置替换所有足够的时间: 查找: 替换: $1§$2 $1$3§$2 $1 步骤3。删除所有标记 查找: 替换: $1§$2 $1$3§$2 $1
rocket123
firefly1000
attack577
有没有使数字颠倒的正则表达式
rocket321
firefly0001
attack775
这是可行的一个小技巧 步骤1。为尚未反转的数字添加标记 查找: 替换:
$1§$2
$1$3§$2
$1
您可以选择其他标记,而不是§
步骤2。请务必用以下设置替换所有足够的时间:
查找:
替换:
$1§$2
$1$3§$2
$1
步骤3。删除所有标记
查找:
替换:
$1§$2
$1$3§$2
$1
希望这能有所帮助。如果已知要反转的最大位数,且不太大,则可以使用单个Notepad++正则表达式搜索和替换。假设最大位数为12,则表达式为: 搜索:
(\d)(\d)(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?
替换为:
(?{12}${12})(?{11}${11})(?{10}${10})(?9$9)(?8$8)(?7$7)(?6$6)(?5$5)(?4$4)(?3$3)$2$1
说明:
任何要反转的数字必须至少有两位数字,因此搜索中的首字母(\d)(\d)
将获得两位数字,而替换中的最终字母$2$1
将它们按相反的顺序放在输出的末尾。(前两位是最简单的部分。)然后搜索字符串根据需要重复模式(\d)?
的次数,以获得最大位数。这些数字与剩余数字(如有)匹配。每个(\d)
模式在替换字符串中都有一个对应的项,它们的形式为(?N$N)
,其中每个N
是捕获组的编号。对于数字4,单位数捕获类似于(?4$4)
。对于大于等于10的捕获,数字用大括号括起来,例如编号12的(?{12}${12})
。这些替换项测试捕获组是否捕获了任何内容,如果捕获了,则插入该捕获项。另见
变体
根据需要为更长或更短的最大位数添加或删除其他搜索和替换项
如果位数可能大于预期,则在搜索字符串中添加一个额外的(\d)
,并在替换末尾添加一些合适的错误消息(?{13})
,将输出超长数字组的错误消息。当然,需要更改13
,以匹配搜索和替换中的项目数
使用Notepad++7.5.6版进行测试。不仅仅使用正则表达式,您还需要一些编程逻辑。是否可以只进行数字运算?同样,不,这里需要一种编程语言,例如
Python
:是的,这似乎可行,这句话被添加到了行中,但很容易被替换掉,找到了,用什么都没有替换,该死的老兄@ramza75这确实适用于每个数字。正如我所说,在第二步中,点击“全部替换”足够多的次数。与多次点击“全部替换”相比,多个可选的捕获组可能会让你更幸运。@ramza75无论如何,请看一下@horcrux你的真命天子,多次点击“全部替换”效果很好,我的朋友,你是最好的!!!!!!!!