【问题标题】:RegEx - How to delete everything before the third empty space in a Notepad++ line?RegEx - 如何删除 Notepad++ 行中第三个空格之前的所有内容?
【发布时间】:2013-06-10 02:42:35
【问题描述】:

我无法找出正确的正则表达式公式来删除 Notepad++ 行中第三个空格之前的所有字符。我有这样的文字:

kea k3fi ifea1k 猴子
k22a kfea.f fkaa99 鹦鹉
23 ma feaj Bear

我希望对文本进行操作,使其显示为:

猴子
鹦鹉
承担

有人有想法吗?任何帮助将非常感激。谢谢!

编辑 >> 问题已解决。谢谢大家的帮助!我希望我和你们一样聪明,哈哈。干杯!

【问题讨论】:

  • 类似:^([^ ]* ){3}
  • @sweersz 如果您的问题得到解决,您可以接受答案

标签: regex notepad++


【解决方案1】:

用途:

^(.*? ){3}

然后将 “替换为:” 保留为 nothing。这将变成:

kea k3fi ifea1k monkey
k22a kfea.f fkaa99 parrot
23 ma feaj bear

进入:

monkey
parrot
bear



另一方面,如果你的文件是这样的:

kea k3fi ifea1k monkey monkey monkey monkey monkey
k22a kfea.f fkaa99 parrot parrot parrot parrot parrot
23 ma feaj bear bear bear bear bear

上面的正则表达式太简单了。您必须使用正则表达式:

^((.*? ){3})(.*?)$

然后将 “替换为:” 保留为 $3

这会将上面的文件变成:

monkey monkey monkey monkey monkey
parrot parrot parrot parrot parrot
bear bear bear bear bear

【讨论】:

  • 完美 :-) 非常感谢!
【解决方案2】:

另一种方法是替换:

^([^ ]* ){3} 

或:

^[^ ]* [^ ]* [^ ]*  

使用空字符串

【讨论】:

  • 非常感谢您的帮助:)
  • @Bohemian,方括号标记了空格,所以我将它们与空格一起使用。
  • 您最好使用\s,而不是用括号将正则表达式弄乱。正则表达式在最好的时候很难阅读。也许我是冒昧地编辑,而不是评论。我试图改进它。一般来说,按原样使用空格是可以的;我见过很多正则表达式都在使用它们。
【解决方案3】:

你的正则表达式是:

^([^ ]+ ){3}

以 3 个无空格的单词开头 3 次。

【讨论】:

    【解决方案4】:

    你可以这样做:

    find: ^([^ ]+ ){3}(.+)$
    replace: $2
    

    然后推送全部替换!

    【讨论】:

    • 哇,你们都摇滚。非常感谢你的帮忙! :-)
    【解决方案5】:

    如果您还想处理制表符或其他空格字符

    find:    ^(\S+\s+){3}
    replace: "nothing"
    

    \s 代表任何空格字符
    \S 代表非空格字符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多