.. module:: ure :synopsis: regular expressions
|see_cpython_module| :mod:`python:re`.
This module implements regular expression operations. Regular expression
syntax supported is a subset of CPython re module (and actually is
a subset of POSIX extended regular expressions).
Supported operators and special sequences are:
.[...][^a-c]).^$?*+???, match zero or one, with the preference
for zero.*?*, match zero or more, with the preference
for the shortest match.+?+, match one or more, with the preference
for the shortest match.|(...)\d[0-9].\D[^0-9].\s[ \t-\r].\S[^ \t-\r].\w[A-Za-z0-9_].\W[^A-Za-z0-9_].\\* is
equivalent to literal * (not treated as the * operator).
Note that \r, \n, etc. are not handled specially, and will be
equivalent to literal letters r, n, etc. Due to this, it's
not recommended to use raw Python strings (r"") for regular
expressions. For example, r"\r\n" when used as the regular
expression is equivalent to "rn". To match CR character followed
by LF, use "\r\n".NOT SUPPORTED:
{m,n})(?P<name>...))(?:...))\b, \B)\r, \n - use Python's own escaping
insteadExample:
import ure
# As ure doesn't support escapes itself, use of r"" strings is not
# recommended.
regex = ure.compile("[\r\n]")
regex.split("line1\rline2\nline3\r\n")
# Result:
# ['line1', 'line2', 'line3', '', '']
.. function:: compile(regex_str, [flags]) Compile regular expression, return `regex <regex>` object.
.. function:: match(regex_str, string) Compile *regex_str* and match against *string*. Match always happens from starting position in a string.
.. function:: search(regex_str, string) Compile *regex_str* and search it in a *string*. Unlike `match`, this will search string for first position which matches regex (which still may be 0 if regex is anchored).
.. function:: sub(regex_str, replace, string, count=0, flags=0, /) Compile *regex_str* and search for it in *string*, replacing all matches with *replace*, and returning the new string. *replace* can be a string or a function. If it is a string then escape sequences of the form ``\<number>`` and ``\g<number>`` can be used to expand to the corresponding group (or an empty string for unmatched groups). If *replace* is a function then it must take a single argument (the match) and should return a replacement string. If *count* is specified and non-zero then substitution will stop after this many substitutions are made. The *flags* argument is ignored. Note: availability of this function depends on :term:`MicroPython port`.
.. data:: DEBUG Flag value, display debug information about compiled expression. (Availability depends on :term:`MicroPython port`.)
Compiled regular expression. Instances of this class are created using ure.compile().
.. method:: regex.match(string) regex.search(string) regex.sub(replace, string, count=0, flags=0, /) Similar to the module-level functions :meth:`match`, :meth:`search` and :meth:`sub`. Using methods is (much) more efficient if the same regex is applied to multiple strings.
.. method:: regex.split(string, max_split=-1, /) Split a *string* using regex. If *max_split* is given, it specifies maximum number of splits to perform. Returns list of strings (there may be up to *max_split+1* elements if it's specified).
Match objects as returned by match() and search() methods, and passed to the replacement function in sub().
.. method:: match.group(index) Return matching (sub)string. *index* is 0 for entire match, 1 and above for each capturing group. Only numeric groups are supported.
.. method:: match.groups() Return a tuple containing all the substrings of the groups of the match. Note: availability of this method depends on :term:`MicroPython port`.
.. method:: match.start([index]) match.end([index]) Return the index in the original string of the start or end of the substring group that was matched. *index* defaults to the entire group, otherwise it will select a group. Note: availability of these methods depends on :term:`MicroPython port`.
.. method:: match.span([index]) Returns the 2-tuple ``(match.start(index), match.end(index))``. Note: availability of this method depends on :term:`MicroPython port`.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。