The concept of regular expression
Regular expression is a logical formula for string operations, which uses some predefined Specific characters and combinations of these specific characters form a "rule string". This "rule string" is used to express a filtering logic for strings.
The syntax rules of regular expressions
The rough matching process of regular expressions is:
1. Take out the expressions and Comparison of characters in the text,
2. If every character can be matched, the match is successful; once there are characters that are not matched successfully, the match fails.
3. If there are quantifiers or boundaries in the expression, the process will be slightly different.
The following are some matching rules for regular expressions in Python
## Pattern |
##Description |
|
^ |
# Matches the beginning of the string
|
|
## Matches the end of the string. |
||
(\n)# Any characters of ##, when the re.DOTALL tag is specified, can match any characters including newlines. ##[...] |
||
is used to represent a group of characters, listed separately: [amk] matches 'a', 'm' or 'k' |
[^...] |
|
Characters not in []: [^abc] matches characters other than a, b, c. | ||
re* |
##matched 0 or multiple expressions. |
|
re |
Matches 1 or more expressions. |
|
##re? |
## Matches 0 or 1 fragments defined by the previous regular expression, non-greedy way
|
|
##Exactly matches n previous expressions. |
##re{ n, m} |
|
Match n to m times the fragment defined by the previous regular expression, greedy way |
##a| b |
|
##matches a or b |
(re) |
|
##G matches the expression within the brackets , also represents a group |
##(?imx) |
Regular expressions contain three optional flags: i, m, or x. Only affects the area in brackets. |
##(?-imx) | Regular expression turns off the i, m, or x optional flags. Only affects the area in brackets. |
|
(?: re) | Similar to (...), but does not represent a group |
|
# #(?imx: re) |
Use i, m, or x optional flags in parentheses |
|
##(?-imx: re)
|
Do not use i, m, or x optional flags in parentheses
|
|
|
||
##Forward positive delimiter. Succeeds if the contained regular expression, represented by ... , successfully matches the current position, otherwise it fails. But once the contained expression has been tried, the matching engine doesn't improve at all; the remainder of the pattern still has to try the right side of the delimiter. |
||
Forward negative delimiter. Opposite of positive delimiter; succeeds when the contained expression cannot be matched at the current position in the string |
||
Matching independent pattern, eliminating backtracking. |
||
##\w |
Matches letters, numbers and underscores, equivalent to '[A-Za-z0-9_]'. |
|
##\W | Matches non-alphanumeric characters and underscores, equivalent to '[^A-Za-z0-9_]'. |
|
##\s
|
Matches any whitespace character, equivalent to [\t\n\r\f].
|
|
\S
|
matches any non-empty character, equivalent to [^ \f\n\r\t \v].
|
|
matches any non-number, equivalent to [^0-9]. |
||
Matches the beginning of the string |
##\Z |
|
# Matches the end of the string. If there is a newline, only the end of the string before the newline is matched. c |
||
##\z |
##match string End |
|
\G | Match the position where the last match is completed. |
|
#\b
|
Matches a word boundary, which refers to the position between a word and a space. For example, 'er\b' matches 'er' in "never" but not in "verb".
|
|
## Match non-word boundaries. 'er\B' matches 'er' in "verb", but not in "never". |
||
Matches a newline character. Matches a tab character. Wait |
##\1...\9 |
|
Matches the content of the nth group. |
#\10 |
|
Match the content of the nth group if it is matched. Otherwise it refers to the expression of the octal character code. |
The above is the detailed content of Detailed explanation of python regular expressions. For more information, please follow other related articles on the PHP Chinese website!