For 2021 - online Python 3 training - see ((here)).
Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.
Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
Well House Consultants
You are on the site of
Well House Consultants
Open Source Training Courses
hotel accommodation. You are welcome to browse and use
our resources subject to our copyright statement and to add in links from your pages to ours.
Other subject areas - resources
Well House Manor Resources
Object Orientation and General topics
Linux / LAMP / Tomcat Resources
Well House Consultants Resources
C and C++ Resources
Web and Intranet Resources
Object Orientation and General technical topics module Q803
Regular Expressions - Extra Elements
Exercises, examples and other material relating to training module Q803. This topic is presented on public course Regular Expressions
As well as matching a pattern, a regular expression can be used to filter out part of a string. This is a very powerful feature, but then you'll also need to learn about capture brackets, sparse and greedy matches, modifiers and more.
|Articles and tips on this subject||updated|
|3650||Possessive Regular Expression Matching - Perl, Objective C and some other languages|
"I'm looking to spend between £200,000 and £225,000 on a new home" you say to the salesman and - guess what - you're offered something much nearer £225,000 that £200,000.
With Regular Expression matching, you can ask the question "do we have a match", and that returns a Yes / ...
|3516||Regular Expression modifiers in PHP - summary table|
PHP's ereg functions are deprecated, and you should now be moving to the preg functions. See [here]. As you're switching your PHP code from ereg to preg regular expressions, you'll be adding delimiters to the main regular expression and providing the ability to add modifiers onto the end - a series ...
|3100||Looking ahead and behind in Regular Expressions - double matching|
Look-ahead and look-behind are a way of "double matching" in a regular expression. If you're at a certain point in the match and you think "the next bit should conform to xxx and at the same time it should conform to yyy" then you can describe xxx via a look-ahead, and follow that with matching yyy ...
|3089||Python regular expressions - repeating, splitting, lookahead and lookbehind|
If you're looking for part of a string that's repeated again later in the string, you can capture the first occurrence and then use a back reference (\1, \2 etc) to refer to "same again". In Python, you can also name the element that you want to repeat - examples [here].
If you have a number of fields ...
|2909||Be gentle rather than macho ... regular expression techniques|
Please don't be "macho" with your regular expressions.
You can write a very long and complex pattern to match something like a postcode or email address, but if you do, it's be hard to test, difficult to debug, and awkard to maintain. And to add insult to injury, it will probably run slower that the ...
|1860||Seven new intermediate Perl examples|
From the "learning to program in Perl" course I'm running this week, I am pleased to present seven new examples ... written during the course, in front of the delegates, to show them NOT ONLY how the code works, BUT ALSO how a programmer will develop such code.
Lists and Context
* If you use an @abc, ...
|1735||Finding words and work boundaries (MySQL, Perl, PHP)|
If you're searching for the word "mile", you probably don't want the page that tells you that Sally Smiled at Harry. But you may want to find a Milestone, even if it is within quotes.
Regular Expressions are your friends!
In Perl style regular expressions (which also work in Python, and in PHP with ...
|1613||Regular expression for 6 digits OR 25 digits|
I can write a regular expression to match ANY number of digits between 6 and 25 ...
but how would I write a regular expression to match either 6 digits or 25 digits, but no number in between?
(The regular expressions in this example are Tcl and ...
|1601||Replacing the last comma with an and|
If I have a list, I'm likely to want to present it comma separated for the most part, but with the word "and" between the last two elements.
"Cambridge, the M11, the M25, the M4, the A361 and Melksham" for example.
Lists or arrays can be joined in almost any language with a function called join or ...
|1372||A taster PHP expression ...|
I've been working on RSS feeds ... looking to get a page that combines various blogs so that I can have a quick look and see where we stand without having to hop and skip round each in turn. And with magpierss, it's turned out to be quite easy.
Yet some blogs give a summary in the their RSS feeds - ...
|1336||Ignore case in Regular Expression|
Do you want to ignore case in a regular expression? There are a variety of ways of doing it ... depending on the language you're writing. Here are some hints:
/abcd/i Perl - an i after the regular expression
eregi PHP - use eregi rather than ereg
re.I or re.IGNORECASE Python - extra parameters ...
|943||Matching within multiline strings, and ignoring case in regular expressions|
Regular Expressions are powerful matching tools and you can specify almost anything within them. But there are certain facilities that are naturally applied to the regular expression as a whole rather than to parts of the match, and there are specified in a different way in each language / implementation.
Examples from our training material
|ahead|| Negative look ahead|
|bref|| Back References|
|isbn|| Testing validity of ISBN number, including check digit|
|lazyvgreedy.py|| Comparison of Greedy and Sparse [python] ...|
|lookahead.py|| Negative lookahead - does not consume / must fail to match [Python]|
|lookbehind.py|| Negative lookbehind - fail if you have just passed over [python]|
|pcode|| Perl - match and extract from a postcode|
|pocohunter|| Post Code hunter / Perl|
|posso|| Sparse, Greedy and Possessive matching|
You may download this module
as a sample of our material
Topics covered in this module
Look around, ahead, behind.
Modifiers that fine tune individual regular expression elements.
If you are looking for a complete course and not just a information on a single subject, visit our Listing and schedule
Well House Consultants specialise in training courses in
. We run
throughout the UK (and beyond for longer courses), and
at our training centre in Melksham, Wiltshire, England.
It's surprisingly cost effective to come on our public courses -
even if you live in a different
country or continent to us
We have a technical library of over 700 books on the subjects on which we teach.
These books are available for reference at our training centre.