Regular Expressions - A Working Example
|Top Previous Next|
Assume you have a file called Program Files, and you wish to swap the names around (e.g. Files Program). A Regular Expression which performs this task is :
Let us break this down into components:
^ This means start at the beginning of the string
([A-Z][a-z]*) This is a single "group", which we will use later. What this says is that we want any capital letter, followed by any number of lower-case letters. The single capital letter is denoted by the [A-Z], i.e. allow a letter in the range A to Z. The lower-case letters are denoted by [a-z] in the same way, followed by an asterisk. This means we can allow any number of letters.
We then allow a single space. If I had wanted multiple spaces I would probably have typed "space asterisk", or possible ( *) to group.
We then have exactly the same again, i.e. we are denoting two words.
Notice we had two sets of brackets. Everything within each set of brackets is treated as a "grouping", and we refer to these groupings as \1, \2, \3 etc.
So, lets say we wanted to swap around the two words in the filename. We would put:
For the match string, and
As the replacement string. Of course, we're free to manipulate the replacements string as we like. For example, it would be quite valid to have:
The \2 which are used to run the \1
For the replacement string. This would result in:
The Files which are used to run the Program.
The above example is very precise. If we wanted to swap the first two words of a name, but keep the remaining text the same, we could put
This says to create three groups: the first group is the first word, the second group is the second word, and the third group is everything that's left.