【问题标题】:Notepad++ count number of times a pattern appears in string and then do replaceNotepad++ 计算模式出现在字符串中的次数,然后替换
【发布时间】: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\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)\s(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)\s(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)\s(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)

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

效果很好,除非我有一行少于 5 个 IP 地址,否则它们会被跳过。有没有一种简单的方法可以使它成为一个迭代调用?就像,计算这种模式出现了多少次然后替换那个数字?谢谢,我在今天之前从未使用过正则表达式,所以您能给我的所有帮助将不胜感激。

加布

【问题讨论】:

  • 当时我想做这样的事情(可能仍然如此),Notepad++ 做不到,但 TextPad 可以。 (我仍然使用 Notepad++ 来做我能做的所有事情,但我需要 Textpad)。 \i 是它的代码。
  • 谢谢,我会看看文本板。但是,下面的答案也会欺骗。
  • 服务器后面总是IP地址吗?
  • 如果您的问题已得到解答,那么接受答案将很有用。如果问题尚未得到解答,请说明您需要哪些额外信息。见stackoverflow.com/help/accepted-answer

标签: regex notepad++


【解决方案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)(\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

【讨论】:

  • 好的,非常感谢,我想我想多了。您的解决方案效果很好。太棒了
  • 感谢使用 NPP 语法的查找表达式。提供了匹配单个 IP 所需的内容。
猜你喜欢
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多