Join Bill Weinman for an in-depth discussion in this video Matching wildcards, part of Perl 5 Essential Training.
- Regular expressions have a simple, yet powerful, system of wildcards. Here's a working copy of wildcards.pl from chapter nine of the Exercise Files. And this is very much like our previous examples, except it's displaying the match with the $1 and the parentheses in the regular expression, so when I run this, it says Match is: text. So, this is just matching a literal string. If I put a period in here instead of the e, that's a wildcard.
And so, that will match t and any character, and then x and t. So, I run this, it still says Match is: text. But if I come up here and change this e to a z and I run that, now it says Match text is: tZxt. On the other hand, if I put this back and I move that dot to after the word text, you notice that it comes up and it says false, because you cannot match past the end of the string.
I could also match one or more of a particular character. So, if I run this, it'll get the matches t. And, on the other hand, if I put in a bunch of t's here and I run this, it'll match all five of them, there. So, that's the plus sign matches one or more copies of a particular character. Likewise, the asterisk, and I'll just say line, like this, the asterisk matches zero or more instances of a character.
And so, if I run this, it matches lin. And if I take that n out altogether, it still comes up as true, because there's zero or more n's. And if I put in a bunch of them, then it puts in a bunch of them, like that. Now, the asterisk is commonly used with the period. And so, if I say, put the line outside of the parentheses, and then, I just say .*, it'll match, let me get rid of these, here, and make this back to normal, here.
What this'll match is line space, and then it'll return from the parentheses all of the characters, all the way up to the end of the string. So, again, of text. And so, when I run this, the match is of text. So, the asterisk is most commonly used with the period, which is the wildcard that matches any character. Now, by default, regular expression wildcards are greedy. That means that they'll match as many characters as possible to satisfy the wildcard.
For example, if I come in here and make my regular expression like this, and now, I'm matching l followed by as many characters as possible, up to e. And you might think it's just going to match the l-i-n-e, but it'll actually match all of them up to this last e, because the wildcard is naturally greedy. So, when I run this, you see it says line of te. So, it's matched everything up until that e.
If I wanted to just match up until that e, then, I can say, don't be greedy by putting in a question mark after the wildcard. And so, now when I run it, it just says line. So, the question mark makes the wildcard lazy instead of greedy. Now it matches as few characters as possible to satisfy the wildcard. The question mark has a different behavior when it's used with a character instead of a wildcard. So, if I say l-i-n-e and put a question mark in here, in this usage, the question mark makes the n character optional.
It'll match zero or one occurrences of n. So, it's the same meta character, the question mark, it's just a different usage. Instead of making a wildcard lazy when you use it with a character, not with a wildcard, it makes that character optional. And so, when I run this, you see it matches. And if I actually take the n out of the string, it will still match, I'll run that, because there's zero or one n's. Wildcards add a lot of power to regular expressions.
And you'll see a lot more examples of how they're used as we continue with the course.
Watch to learn the details of the Perl syntax, from variables, conditionals, loops, and data structures to regular expressions, functions, and references. A quick-start guide is included for experienced developers who want to get up and running with Perl 5 fast, and the entire course is recommended for both new and experienced programmers alike. Later chapters cover file handling and reusing code with Perl modules, plus Perl best coding practices.
- Understanding Perl's general syntax and the anatomy of a Perl script
- Writing statements and expressions
- Creating assignments
- Working with variables and strings
- Using data types effectively
- Defining logical flow with conditionals and loops
- Using special variables
- Using Perl operators
- Performing simple Perl programming tasks with expressions
- Matching data
- Defining and calling functions
- Using references
- Handling files in the file I/O
- Using built-in functions
- Reusing code with modules
- Coding with Perl best practices
Skill Level Intermediate
Programming Foundations: Refactoring Codewith Simon Allardice1h 44m Intermediate
1. Setting Up
About Perl3m 36s
2. Quick Start
3. Basic Syntax
4. Values and Variables
7. Special Variables
9. Regular Expressions
11. References and Structures
12. File I/O
13. Built-In Functions
15. Best Practices
- Mark as unwatched
- Mark all as unwatched
Are you sure you want to mark all the videos in this course as unwatched?
Take notes with your new membership!
Type in the entry box, then click Enter to save your note.
1:30Press on any video thumbnail to jump immediately to the timecode shown.