如何使用正则表达式查找和反转文件名的前两个单词,其中单词之间用分隔。或空白

时间:2019-03-28 11:20:11

标签: regex find reverse word hyphen

我正在尝试批量重命名文件名,找到文件名的前两个单词(可以包括带连字符和撇号的名称,并且单词可以用空格或。分隔)。

然后,我需要颠倒这些名称,以“。”分隔,并附加所有剩余的单词。

示例:

从“ 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

不起作用。

然后我如何捕获前两个,将它们反转,然后仅追加其余文本?

1 个答案:

答案 0 :(得分:0)

要匹配前两个单词,可以使用锚点来断言字符串的开头。然后,您可以使用捕获组两次,并在两次捕获组之间使用分隔符。

如果分隔符是空格或制表符,则可以使用:

^([\w'-]+)[ \t]+([\w'-]+)

这将匹配

  • ^字符串的开头
  • ([\w'-]+)捕获组1
  • [ \t]+匹配一个空格或制表符1次以上(在char类中使用\s来匹配空白字符,或仅使用一个空格来匹配它)
  • ([\w'-]+)捕获第2组

并替换为:

$2.$1

Regex demo