re
–简单的正则表达式¶
该模块实现了相应 CPython 模块的 一个子集,如下所述。有关更多信息,请参阅原始 CPython 文档: re
.
该模块实现了正则表达式操作。支持的正则表达式语法是 CPythonre
模块的一个子集(实际上是 POSIX 扩展正则表达式的一个子集)。
支持的运算符和特殊序列是:
.
匹配任何字符。
[...]
匹配字符集。支持单个字符和范围,包括否定集(例如
[^a-c]
)。^
匹配字符串的开头。
$
匹配字符串的结尾。
?
匹配前一个子模式的零个或一个。
*
匹配零个或多个前一个子模式。
+
匹配一个或多个先前的子模式。
??
的非贪婪版本
?
,匹配零或一,优先选择零。*?
的非贪婪版本
*
, 匹配零个或多个,优先选择最短匹配。+?
的非贪婪版本
+
, 匹配一个或多个,优先选择最短匹配。|
匹配此运算符的左侧或右侧子模式。
(...)
分组。每个组都在捕获(它捕获的子字符串可以通过
match.group()
方法访问)。\d
匹配数字。相当于
[0-9]
。\D
匹配非数字。相当于
[^0-9]
.\s
匹配空格。相当于。
[ \t-\r]
.\S
匹配非空白。相当于。
[^ \t-\r]
.\w
匹配“单词字符”(仅限 ASCII)。相当于
[A-Za-z0-9_]
.\W
匹配非“单词字符”(仅限 ASCII)。相当于
[^A-Za-z0-9_]
.\
逃脱字符。反斜杠后面的任何其他字符,除了上面列出的那些,都是按字面意思理解的。例如,
\*
等效于字面量*
(不被视为*
运算符)。需要注意的是\r
,\n
等没有特殊处理,并且将相当于文字字母r
,n
等。由于这一点,不推荐使用原始Python字符串(r""
)的正则表达式。例如,r"\r\n"
当用作正则表达式时相当于"rn"
. 要匹配 CR 字符后跟 LF,请使用"\r\n"
.
不支持::
计数重复 (
{m,n}
)命名组 (
(?P<name>...)
)非捕获组 (
(?:...)
)更高级的断言(
\b
,\B
)特殊字符转义如
\r
,\n
- 改用 Python 自己的转义等等。
例子:
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', '', '']
职能¶
-
re.
match
(regex_str, string)¶ 编译regex_str并匹配string。匹配总是从字符串的起始位置开始。
-
re.
search
(regex_str, string)¶ 编译regex_str并在string 中搜索它。与 不同
match
,这将搜索与正则表达式匹配的第一个位置的字符串(如果正则表达式被锚定,它仍然可能为 0)。
-
re.
sub
(regex_str, replace, string, count=0, flags=0, /)¶ 编译regex_str并在string 中搜索它,用replace替换所有匹配项,并返回新字符串。
replace可以是字符串或函数。如果它是一个字符串然后逃逸形式的序列
\<number>
和\g<number>
可用于扩大到相应的组(或提供无与伦比的基团的空字符串)。如果replace 是一个函数,那么它必须接受一个参数(匹配项)并且应该返回一个替换字符串。如果指定了 count 且非零,则在进行了这么多次替换后,将停止替换。该标志参数将被忽略。
注意:此功能的可用性取决于MicroPython 端口。
-
re.
DEBUG
¶ 标志值,显示编译表达式的调试信息。(可用性取决于MicroPython 端口。)
正则表达式对象¶
编译的正则表达式。此类的实例是使用
re.compile()
.
-
regex.
match
(string)¶ -
regex.
search
(string)¶ -
regex.
sub
(replace, string, count=0, flags=0, /)¶ 类似于模块级函数
match()
,search()
和sub()
.如果将相同的正则表达式应用于多个字符串,则使用方法(得多)效率更高。
-
regex.
split
(string, max_split=-1, /)¶ 使用正则表达式拆分字符串。如果给出了max_split,则它指定要执行的最大拆分次数。返回字符串列表(如果指定,最多可能有 max_split+1 个元素)。
匹配对象¶
匹配match()
和 search()
方法返回的对象,并传递给 中的替换函数 sub()
。
-
match.
group
(index)¶ 返回匹配的(子)字符串。整个匹配的索引为 0,每个捕获组的索引为 1 及以上。仅支持数字组。
-
match.
groups
()¶ 返回包含匹配组的所有子字符串的元组。
注意:此方法的可用性取决于MicroPython 端口。
-
match.
start
([index])¶ -
match.
end
([index])¶ 返回匹配的子字符串组的开始或结束的原始字符串中的索引。 index 默认为整个组,否则会选择一个组。
注意:这些方法的可用性取决于MicroPython 端口。
-
match.
span
([index])¶ 返回 2-tuple 。
(match.start(index), match.end(index))
.注意:此方法的可用性取决于 MicroPython 端口。