正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
Python 自1.5版本起增加了re 模塊,它提供 Perl 風格的正則表達式模式。
re 模塊使 Python 語言擁有全部的正則表達式功能。
compile 函數根據一個模式字符串和可選的標志參數生成一個正則表達式對象。該對象擁有一系列方法用于正則表達式匹配和替換。
本文重點給大家介紹python 正則表達式語法。
The special characters are:? ? "." ? ? ?Matches any character except a newline.? ? "^" ? ? ?Matches the start of the string.? ? "$" ? ? ?Matches the end of the string or just before the newline at? ? ? ? ? ? ?the end of the string.? ? "*" ? ? ?Matches 0 or more (greedy) repetitions of the preceding RE.? ? ? ? ? ? ?Greedy means that it will match as many repetitions as possible.? ? "+" ? ? ?Matches 1 or more (greedy) repetitions of the preceding RE.? ? "?" ? ? ?Matches 0 or 1 (greedy) of the preceding RE.? ? *?,+?,?? Non-greedy versions of the previous three special characters.? ? {m,n} ? ?Matches from m to n repetitions of the preceding RE.? ? {m,n}? ? Non-greedy version of the above.? ? "\\" ? ? Either escapes special characters or signals a special sequence.? ? [] ? ? ? Indicates a set of characters.? ? ? ? ? ? ?A "^" as the first character indicates a complementing set.? ? "|" ? ? ?A|B, creates an RE that will match either A or B.? ? (...) ? ?Matches the RE inside the parentheses.? ? ? ? ? ? ?The contents can be retrieved or matched later in the string.? ? (?aiLmsux) Set the A, I, L, M, S, U, or X flag for the RE (see below).? ? (?:...) ?Non-grouping version of regular parentheses.? ? (?P The special sequences consist of "\\" and a character from the listbelow. ?If the ordinary character is not on the list, then theresulting RE will match the second character.? ? \number ?Matches the contents of the group of the same number.? ? \A ? ? ? Matches only at the start of the string.? ? \Z ? ? ? Matches only at the end of the string.? ? \b ? ? ? Matches the empty string, but only at the start or end of a word.? ? \B ? ? ? Matches the empty string, but not at the start or end of a word.? ? \d ? ? ? Matches any decimal digit; equivalent to the set [0-9] in? ? ? ? ? ? ?bytes patterns or string patterns with the ASCII flag.? ? ? ? ? ? ?In string patterns without the ASCII flag, it will match the whole? ? ? ? ? ? ?range of Unicode digits.? ? \D ? ? ? Matches any non-digit character; equivalent to [^\d].? ? \s ? ? ? Matches any whitespace character; equivalent to [ \t\n\r\f\v] in? ? ? ? ? ? ?bytes patterns or string patterns with the ASCII flag.? ? ? ? ? ? ?In string patterns without the ASCII flag, it will match the whole? ? ? ? ? ? ?range of Unicode whitespace characters.? ? \S ? ? ? Matches any non-whitespace character; equivalent to [^\s].? ? \w ? ? ? Matches any alphanumeric character; equivalent to [a-zA-Z0-9_]? ? ? ? ? ? ?in bytes patterns or string patterns with the ASCII flag.? ? ? ? ? ? ?In string patterns without the ASCII flag, it will match the? ? ? ? ? ? ?range of Unicode alphanumeric characters (letters plus digits? ? ? ? ? ? ?plus underscore).? ? ? ? ? ? ?With LOCALE, it will match the set [0-9_] plus characters defined? ? ? ? ? ? ?as letters for the current locale.? ? \W ? ? ? Matches the complement of \w.? ? \\ ? ? ? Matches a literal backslash. This module exports the following functions:? ? match ? ? Match a regular expression pattern to the beginning of a string.? ? fullmatch Match a regular expression pattern to all of a string.? ? search ? ?Search a string for the presence of a pattern.? ? sub ? ? ? Substitute occurrences of a pattern found in a string.? ? subn ? ? ?Same as sub, but also return the number of substitutions made.? ? split ? ? Split a string by the occurrences of a pattern.? ? findall ? Find all occurrences of a pattern in a string.? ? finditer ?Return an iterator yielding a match object for each match.? ? compile ? Compile a pattern into a RegexObject.? ? purge ? ? Clear the regular expression cache.? ? escape ? ?Backslash all non-alphanumerics in a string. Some of the functions in this module takes flags as optional parameters:? ? A ?ASCII ? ? ? For string patterns, make \w, \W, \b, \B, \d, \D? ? ? ? ? ? ? ? ? ?match the corresponding ASCII character categories? ? ? ? ? ? ? ? ? ?(rather than the whole Unicode categories, which is the? ? ? ? ? ? ? ? ? ?default).? ? ? ? ? ? ? ? ? ?For bytes patterns, this flag is the only available? ? ? ? ? ? ? ? ? ?behaviour and needn't be specified.? ? I ?IGNORECASE ?Perform case-insensitive matching.? ? L ?LOCALE ? ? ?Make \w, \W, \b, \B, dependent on the current locale.? ? M ?MULTILINE ? "^" matches the beginning of lines (after a newline)? ? ? ? ? ? ? ? ? ?as well as the string.? ? ? ? ? ? ? ? ? ?"$" matches the end of lines (before a newline) as well? ? ? ? ? ? ? ? ? ?as the end of the string.? ? S ?DOTALL ? ? ?"." matches any character at all, including the newline.? ? X ?VERBOSE ? ? Ignore whitespace and comments for nicer looking RE's.? ? U ?UNICODE ? ? For compatibility only. Ignored for string patterns (it? ? ? ? ? ? ? ? ? ?is the default), and forbidden for bytes patterns. 下面看下正則表達式匹配的流程: 正則表達式的大致匹配過程是:依次拿出表達式和文本中的字符比較,如果每一個字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。如果表達式中有量詞或邊界,這個過程會稍微有一些不同,但也是很好理解的,自己多使用幾次就能明白。 總結 到此這篇關于python 正則表達式語法記錄的文章就介紹到這了,希望大家以后多多支持好二三四!?