我有一个名字和昵称列表,格式为firstname / surname / nickname,我需要重新格式化,以便昵称首先出现在行上并放在引号中。
我已经能够使用以下方法在昵称周围加上引号:
找到:(\ w +)。$
替换为:" \ 1"
这转变:
蒂莫西·伯尔蒂姆
分为:
Timothy Burr" Tim"
但是,我不确定是否可以将昵称移到每行的开头。我的目标是:
"添"蒂莫西·伯尔
答案 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