我正在尝试批量重命名文件名,找到文件名的前两个单词(可以包括带连字符和撇号的名称,并且单词可以用空格或。分隔)。
然后,我需要颠倒这些名称,以“。”分隔,并附加所有剩余的单词。
示例:
从“ Peter O'Toole hi res.jpg”到“ O'Toole.Peter.hi res.jpg”
从“ Stanley Baker.jpg”到“ Baker.Stanley.jpg”
从“ Daniel Day-Lewis.jpg”到“ Day-Lewis.Daniel.jpg”
如果我使用:
([[\ w'-] +)
这让我明白了所有的话。但替换为:
$ 2. $ 1
不起作用。
然后我如何捕获前两个,将它们反转,然后仅追加其余文本?
答案 0 :(得分:0)
要匹配前两个单词,可以使用锚点来断言字符串的开头。然后,您可以使用捕获组两次,并在两次捕获组之间使用分隔符。
如果分隔符是空格或制表符,则可以使用:
^([\w'-]+)[ \t]+([\w'-]+)
这将匹配
^
字符串的开头([\w'-]+)
捕获组1 [ \t]+
匹配一个空格或制表符1次以上(在char类中使用\s
来匹配空白字符,或仅使用一个空格来匹配它)([\w'-]+)
捕获第2组并替换为:
$2.$1