Notepad ++ - 你能用正则表达式将一行上的最后一个单词移到前面吗?

时间:2016-01-28 21:39:59

标签: regex notepad++

我有一个名字和昵称列表,格式为firstname / surname / nickname,我需要重新格式化,以便昵称首先出现在行上并放在引号中。

我已经能够使用以下方法在昵称周围加上引号:

  

找到:(\ w +)。$

     

替换为:" \ 1"

这转变:

  蒂莫西·伯尔蒂姆

分为:

  

Timothy Burr" Tim"

但是,我不确定是否可以将昵称移到每行的开头。我的目标是:

  

"添"蒂莫西·伯尔

2 个答案:

答案 0 :(得分:3)

您可以使用懒惰量词

(.*?)(\w+)$

并用"\2" \1替换该行,请参阅here on his blog 您不能使用点星,因为它只会捕获第二组的m

要处理不需要的空格(可能出现在第一组中,然后出现在新字符串的末尾),您可以提出以下正则表达式:

(.*?)(?:\s*(\w+))$
# turns Timothy Burr Tim to Tim Timothy Burr (no trailing whitespaces anymore)

也可以在a demo here on regex101.com上查看演示。

答案 1 :(得分:1)

你很接近,你只需要抓住剩下的线并在之后更换它。

搜索:

/^(.*?)\s*(\w+)$/m

替换:

"\2" \1
相关问题