Regex 记事本++;计算模式在字符串中出现的次数,然后进行替换

Regex 记事本++;计算模式在字符串中出现的次数,然后进行替换,regex,notepad++,Regex,Notepad++,我正在组织一些有名字的文本,然后在后面列出几个IP。例如: /bserver1-nfs01 10.61.53.206 10.61.53.207 10.61.53.208 10.61.53.209 /bserver1-nfs01 10.61.53.206 10.61.53.207 10.61.53.208 10.61.53.209 进入: 我正在使用以下查找/替换命令 (b\b\d{{1,3 3}{{1,3}{1,3}}{1,3}}{1,3}}{1,3}{1,3}\3}}\b

我正在组织一些有名字的文本,然后在后面列出几个IP。例如:

/bserver1-nfs01 10.61.53.206 10.61.53.207 10.61.53.208 10.61.53.209
/bserver1-nfs01 10.61.53.206 10.61.53.207 10.61.53.208 10.61.53.209
进入:

我正在使用以下查找/替换命令

(b\b\d{{1,3 3}{{1,3}{1,3}}{1,3}}{1,3}}{1,3}{1,3}\3}}\b<<以下以下以下以下以下人士::::<以下以下以下以下以下以下以下以下人士::::手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手手{1,3}\.\d{1,3}\b)

替换:
\1\2\n\1\3\n\1\4\n\1\5

工作得很好,除非我有一个少于5个ip地址的线路,否则它们会被跳过。有没有一种简单的方法可以使这成为一个迭代调用?比如,计算这种模式出现的次数,然后替换那个数字?谢谢,我今天以前从未使用过regex,所以如果您能给我提供帮助,我将不胜感激


Gabe

我会以稍微不同的方式处理这个问题。我将使用正则表达式更改以下行:

进入:

然后,我会多次单击“全部替换”,直到它报告没有进行任何更改

因此,我将您的find表达式改为:

^(/[^\s]+\s)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
至于更换用途:

\1\2\n\1\3

我曾经想做这样的事情,但当时(也许现在仍然如此),Notepad++做不到,但TextPad可以。(我仍然使用Notepad++来完成所有我能做的事情,但我需要Textpad来完成这项工作)<代码>\i是它的代码。谢谢,我来看看文本板。然而,下面的答案也有一定的骗局。服务器后面总是IP地址吗?如果你的问题已经得到了回答,那么接受答案会很有用。如果问题尚未回答,请解释您需要的其他信息。好吧,非常感谢,我想我是想得太多了。你的解决方案很有效。感谢使用NPP语法查找表达式。提供了匹配单个IP所需的内容。
^(/[^\s]+\s)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
\1\2\n\1\3