This time I will bring you a detailed explanation of the use of sub-expressions in regular expressions . What are the precautions for using sub-expressions in regular expressions? . The following is a practical case. Let’s take a look. .
Note: In all examples1. Introduction to the problem
First let’s look at an example. Although some phrases such as Windows 2000 are composed of multiple words, they are actually a whole. In the HTML page You can use non-breaking space to make it appear on one line in the browser. Now match multiple such spaces: Text:Your operation system is Windows 2000.
Regular expression:nbsp;{2,}
Result:Your operation system is Windows 2000.
Analysis: The pattern used here wants to match 2 or more non-newline spaces, but as can be seen from the results, nothing is matched, because the pattern nbsp;{2,} can only match something like nbsp;;;; ;;;Text that starts with nbsp and contains 2 or more consecutive semicolons. Because the repeated matching mentioned earlier is multiple repetitions of the character immediately before the repeated matching metacharacter, but if we want to match astring multiple times , and what to do?
2. Subexpression
From the above we derive the subexpression. A subexpression is part of a larger expression. The purpose of dividing an expression into multiple subexpressions is to use those subexpressions as an independent element. Subexpressions must be enclosed in (and). Therefore, the regular expression in the previous example should be written as (nbsp;){2,}. Let’s look at a regular expression that matches a valid year: Text:1988-11-13
Regular expression:(19| 20)\d{2}
Result:[1988]-11-13
Analysis: In this example, for Exclude meaningless years and limit the first two digits of the year to 19 or 20. | is the OR operator in regular expressions. Here you must put 19|20 into a subexpression, that is (19|20), otherwise you can only match the year starting with 20,3. Nesting of subexpressions
Subexpressions are allowed to be nested, and multiple levels of nesting are allowed. There is no limit to the nesting level in theory. In the expression ((A)(B(C))), there are the following sub-expressions:1 ((A)(B(C)))
2 (A)
3 (B(C))
##4 (C )There are 4 in total, and the 0th one always represents the entire expression. In the following back references, we will introduce the use of \n (n is the number of the subexpression) to reference subexpressions.
For examples of nested subexpressions, see the regular expression matching IPV4 addresses later.
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 php and js to implement regular password matching of numbers and lettersRegular in JQ Verification cannot contain Chinese methodsThe above is the detailed content of Detailed explanation of the use of subexpressions in regular expressions. For more information, please follow other related articles on the PHP Chinese website!