Notepad++ 计算模式出现在字符串中的次数,然后替换
Posted
技术标签:
【中文标题】Notepad++ 计算模式出现在字符串中的次数,然后替换【英文标题】:Notepad++ count number of times a pattern appears in string and then do replace 【发布时间】:2015-02-24 22:59:22 【问题描述】:我正在整理一些具有名称的文本,然后在其后面列出了几个 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
/bserver1-nfs01 10.61.53.207
/bserver1-nfs01 10.61.53.208
/bserver1-nfs01 10.61.53.209
我正在使用以下查找/替换命令
找到:(/.*?\s)(\b\d1,3\.\d1,3\.\d1,3\.\d1,3\b)\s(\b\d1,3\.\d1,3\.\d1,3\.\d1,3\b)\s(\b\d1,3\.\d1,3\.\d1,3\.\d1,3\b)\s(\b\d1,3\.\d1,3\.\d1,3\.\d1,3\b)
替换:\1\2\n\1\3\n\1\4\n\1\5
效果很好,除非我有一行少于 5 个 IP 地址,否则它们会被跳过。有没有一种简单的方法可以使它成为一个迭代调用?就像,计算这种模式出现了多少次然后替换那个数字?谢谢,我在今天之前从未使用过正则表达式,所以您能给我的所有帮助将不胜感激。
加布
【问题讨论】:
当时我想做这样的事情(可能仍然如此),Notepad++ 做不到,但 TextPad 可以。 (我仍然使用 Notepad++ 来做我能做的所有事情,但我需要 Textpad)。\i
是它的代码。
谢谢,我会看看文本板。但是,下面的答案也会欺骗。
服务器后面总是IP地址吗?
如果您的问题已得到解答,那么接受答案将很有用。如果问题尚未得到解答,请说明您需要哪些额外信息。见***.com/help/accepted-answer
【参考方案1】:
我会稍微不同地处理这个问题。我会使用正则表达式来改变这样的行:
/bserver1-nfs01 10.61.53.206 10.61.53.207 10.61.53.208 10.61.53.209
进入:
/bserver1-nfs01 10.61.53.206
/bserver1-nfs01 10.61.53.207 10.61.53.208 10.61.53.209
然后我会多次点击全部替换,直到它报告没有进行任何更改。
因此,我会将您的 find 表达式更改为:
^(/[^\s]+\s)(\d1,3\.\d1,3\.\d1,3\.\d1,3)\s(\d1,3\.\d1,3\.\d1,3\.\d1,3)
以及替换使用:
\1\2\n\1\3
【讨论】:
好的,非常感谢,我想我想多了。您的解决方案效果很好。太棒了 感谢使用 NPP 语法的查找表达式。提供了匹配单个 IP 所需的内容。以上是关于Notepad++ 计算模式出现在字符串中的次数,然后替换的主要内容,如果未能解决你的问题,请参考以下文章