This time I will bring you a detailed explanation of the use of the shortest matching mode. What are the precautions when using the shortest matching mode. The following is a practical case, let's take a look.
Preface
Recently I wanted to use regular expression to grab something from the web page, but the content was not It’s complicated but there are many problems. Not much to say below, let’s take a look at the detailed introduction:
When we use regular expressions to match the beginning and end of a tag, such as matching <h1>hello world</h1> The opening and closing tags of h1 in
Many people may write like this
/<.*h1>/g
But is this really okay?
Because the * matching character matches zero or more of the previous character, and it is a greedy matching
, so you will get the following result.
Obviously this is not what we want, so how to change greedy matching into minimum matching?
/<.*?h1>/g
The above writing method is enough, as follows Picture:
In fact, the principle should be very simple, because ? is also a greedy match, and can only match 0 to 1,
so it will match the first It ends when one is used, thus preventing * from greedily matching multiple ones.
PS: Here are two very convenient regular expression tools for your reference:
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
Using Linux grep and regular expressions
Using regular expressions to verify input on the login page content
The above is the detailed content of Detailed explanation of the use of shortest match mode. For more information, please follow other related articles on the PHP Chinese website!