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

问题描述 投票:1回答:1

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

然后我需要反转这些名称,用“。”分隔,然后附加任何剩余的单词。

例子:

“Pet r'ぇぇ。。Jpg”和'''ぇぇぺrひrひs。jpg“

“Stanley Baker.jpg”改编自“Baker.Stanley.jpg”

“Daniel Day-Lewis.jpg”改编自“Day-Lewis.Daniel.jpg”

如果我使用:

([\ W“ - ] +)

这让我得到了所有的话。但替换为:

$2.$1

不起作用。

然后,我如何捕获前两个,反转它们,然后只是附加剩余的文本?

regex find reverse word hyphen
1个回答
0
投票

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

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

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

这将匹配

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

并替换为:

$2.$1

Regex demo

© www.soinside.com 2019 - 2024. All rights reserved.