Home > Web Front-end > JS Tutorial > Detailed explanation of the use of subexpressions in regular expressions

Detailed explanation of the use of subexpressions in regular expressions

php中世界最好的语言
Release: 2018-03-30 09:39:53
Original
2760 people have browsed it

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 examples

regular expressionthe matching result is contained between [and] in the source text. Some examples will be implemented using java. If it is a regular expression in java itself The usage of the formula will be explained in the corresponding places. All java examples are tested under JDK1.6.0_13.

1. 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 a

string 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 letters


Regular in JQ Verification cannot contain Chinese methods

The 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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template