正则表达式按姓氏字母顺序将文件排序到文件夹中?

时间:2014-10-12 21:33:58

标签: regex

我试图找到一种方法来编写正则表达式,根据姓氏按字母顺序将文件排序到单独的文件夹中。文件名都以一个名字开头,但是写着#34;名字的姓氏"所以我需要一个表达式,它将匹配第一个分隔符之前的最后一个字的第一个字母" - "。例如

 John M. Allen - job 00 - october.txt

应匹配" A"在艾伦和所有其他姓氏开头的" A"所以我可以使用File Renamer将它们移动到名为" A"的文件夹中。

我对正则表达式相当新,并且不知道如何处理这个问题。我正在使用JS中的File Renamer 6.0.1。

2 个答案:

答案 0 :(得分:1)

试试这个:

\b[A-Z](?=[a-z]+\s-\s)

See this.

这可能看起来有点复杂,但如果你理解了所有的部分就不是这样(\ b表示匹配单词边界,只是google'单词边界正则表达式'以了解更多信息)。 ?=是一个先行断言。我添加了一个单词边界和一些更多的细节,以避免不良匹配,假设你在00 - 10月份之前有A,如果我没有使用[az] +而是使用\ w +那么它也会匹配不是你想要的。

答案 1 :(得分:0)

不是特别健壮,因为它不适用于两个姓氏或任何时髦的标点符号,但这应该让你开始:

(\w)\w+(?<=\w) - 

Example

姓氏的第一个字母位于第一个捕获组中;根据您使用的语言,您需要了解如何引用它。