我试图找到一种方法来编写正则表达式,根据姓氏按字母顺序将文件排序到单独的文件夹中。文件名都以一个名字开头,但是写着#34;名字的姓氏"所以我需要一个表达式,它将匹配第一个分隔符之前的最后一个字的第一个字母" - "。例如
John M. Allen - job 00 - october.txt
应匹配" A"在艾伦和所有其他姓氏开头的" A"所以我可以使用File Renamer将它们移动到名为" A"的文件夹中。
我对正则表达式相当新,并且不知道如何处理这个问题。我正在使用JS中的File Renamer 6.0.1。
答案 0 :(得分:1)
试试这个:
\b[A-Z](?=[a-z]+\s-\s)
这可能看起来有点复杂,但如果你理解了所有的部分就不是这样(\ b表示匹配单词边界,只是google'单词边界正则表达式'以了解更多信息)。 ?=是一个先行断言。我添加了一个单词边界和一些更多的细节,以避免不良匹配,假设你在00 - 10月份之前有A,如果我没有使用[az] +而是使用\ w +那么它也会匹配不是你想要的。
答案 1 :(得分:0)
不是特别健壮,因为它不适用于两个姓氏或任何时髦的标点符号,但这应该让你开始:
(\w)\w+(?<=\w) -
姓氏的第一个字母位于第一个捕获组中;根据您使用的语言,您需要了解如何引用它。