(1) Type the regular expression to group elements of the previous filename:

^([ˆ ]+) (.*)\.(.*)

The workflow will group using $1, $2, $3 and so on. Later you can use them to build a new filename.

(2) When the regular expression is finished type then an at sign at the end:

^([ˆ ]+) (.*)\.(.*)@

(3) After the at sign type the new filename (here you can use the groups formed in the first step):

^([ˆ ]+) (.*)\.(.*)@$1.$3

(4) Optionally add current date or any other filename constants (read below about them):

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y.$3

(5) Optionally add a custom sequence of numbers e.g. with two leading zeros starting at one (read how to build a custom sequence below):

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y ##[1].$3

(6) Optionally find and replace characters in the original filename utilizing the syntax {find@@replace}:

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y ##[1].$3{_@@-}

(7) Optionally utilize one of the modifiers (read about them below) to e.g. set all letters to lowercase:

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y ##[1].$3{_@@-}{-l}

Note that it is important to keep the modifiers at the very end of the command and enclosed by {}, using or not find and replace.

If all you need is a simple find and replace you can use the following simplified command:

find@@replace{-modifiers}

Whether using the regular expression or only the simple find and replace you can always preview the new filenames pressing SHIFT key:

Modifiers

-d to remove diacriticals

-s to remove space

-c to Capitalize Name

-t to Title name

-u to UPPERCASE

-l to lowercase

-_ to replace underscore to space

-b to replace space to underscore

Use one or more at the very end of the command enclosed by {}, for example:

(.*)\.(.*)@$1.$2{-s-u}
-@@_{-u}

New Filename Constants

You can add the following constants to the new filename:

Current Date

$d = day e.g. 02

$m = month e.g. 04

$mm = month e.g. April

$y = year e.g. 2013

$h = hour e.g. 02

$n = minutes e.g. 54

$s = seconds e.g. 30

Date Created

$cd = day e.g. 02

$cm = month e.g. 04

$cmm = month e.g. April

$cy = year e.g. 2013

$ch = hour e.g. 02

$cn = minutes e.g. 54

$cs = seconds e.g. 30

Date Modified

$mod = day e.g. 02

$mom = month e.g. 04

$momm = month e.g. April

$moy = year e.g. 2013

$moh = hour e.g. 02

$mon = minutes e.g. 54

$mos = seconds e.g. 30

EXIF Original Date

This is the date and time when the image was originally captured by the camera.

$ed = day e.g. 02

$em = month e.g. 04

$emm = month e.g. April

$ey = year e.g. 2013

$eh = hour e.g. 02

$en = minutes e.g. 54

$es = seconds e.g. 30

Image Dimensions

$iw = width in pixels

$ih = height in pixels

Sequence

You can add a number sequence to the new filename by utilizing # (each one represents a leading zero) followed by the start number enclosed in brackets e.g. ###[1] which means 3 leading zeros starting at 1.

Create New Folder and Move Files

You can also use the regular expression to create a new folder and move the file(s) there.

Utilize a forward slash ("/") before the new name:

(.*)@$m-$y/file.png

A new folder will be created based on current month ($m) and year ($y) and the file will be renamed and moved to there.

Recent Expressions and Presets

To make things faster the workflow:

Display the last used expression

In Recent Expressions there are a list of the last 40 used expressions; note that you can alo use a shortcut to access them: just type a single at sign (@)

In Presets there are some ready to use expressions a long with the user favorites ones; note that you can alo use a shortcut to access them: just type a single hash sign (#)

The workflow saves the last used regular expression in the main workflow menu, a list of recent regular expressions and a list of Presets.

To add a Recent expression to Presets just type a plus symbol followed by the preset name: +For My Videos

Carlos, thank you for your note - given that this is a regex renamer, I think it would be better to take off this limitation (novice users will likely not use a regex in the first place). I took a look at regex_01.scpt - I removed the following check

Carlos, thank you for your note - given that this is a regex renamer, I think it would be better to take off this limitation (novice users will likely not use a regex in the first place). I took a look at regex_01.scpt - I removed the following check

and it seems to be doing exactly what I want

Thanks!

PS: The preview function is excellent !

Great!

Maybe you're right about the extension.

Anyway, a file without an extension at all could trigger some alert though…