# `ure` – 正则表达式 - [概要](#概要) - [`ure` API详解](#ure-api详解) - [函数](#函数) - [正则表达式对象](#正则表达式对象) - [Match 对象](#match-对象) ## 概要   该模块实现相应CPython模块的子集   该模块实现正则表达式操作。支持的正则表达式语法是CPython `re` 模块的一个子集(实际上是POSIX扩展正则表达式的子集)。 支持运营商为: - `'.'` 匹配任何字符。 - `'[]'` 匹配字符集。支持单个字符和范围。 - `'^'` 匹配字符串的开头. - `'$'` 匹配字符串的结尾. - `'?'` 匹配零个或前一个实体之一. - `'*'` 匹配零个或多个先前的实体y. - `'+'` 匹配一个或多个先前的实体. - '??' 非贪婪模式,匹配零个实体 - '*?' 非贪婪模式,匹配零个实体 、 - '+?' 非贪婪模式,匹配一个实体 - `'|'` 匹配此运营商的左侧或右侧. - `'(...)'` 分组。每个组都在捕获(可以使用match.group()method访问捕获的子字符串)。   不支持计数重复({m,n})、更高级断言、名称组等。 ## `ure` API详解   使用`import ure`导入`ure`模块   再使用`TAB` 按键来查看`ure`中所包含的内容: ```python >>> import ure >>> ure. __name__ compile match search sub ``` ### 函数 - `ure.compile`(*regex_str*) 函数说明:编译正则表达式,返回 正则表达式对象对象。 - `ure.match`(*regex_str*, *string*) 将 正则表达式对象 与 `string` 匹配。匹配通常从字符串的起始位置进行。 - `ure.search`(*regex_str*, *string*) 函数说明:在 `string` 中搜索 正则表达式对象不同,这将首先搜索与正则表达式相匹配的字符串(若正则表达式固定,则字符串为0)。 - `ure.sub`(*regex_str*, *replace*, *string*, *count=0*, *flags=0*) 函数说明:编译regex_str并在string中搜索它,将所有匹配项替换为replace,然后返回新字符串。 replace可以是字符串或函数。如果它是一个字符串然后逃逸形式的序列\<number>和\g<number>可用于扩大到相应的组(或提供无与伦比的基团的空字符串)。如果replace是一个函数,则它必须采用单个参数(匹配项),并应返回替换字符串。 如果指定了count且非零,那么在进行了如此多的替换后,替换将停止。该标志参数将被忽略。 注意:此功能的可用性取决于。MicroPython port - `ure.DEBUG` 函数说明:标记值,显示有关已编译表达式的调试信息。 ### 正则表达式对象   编译正则表达式。该类实例使用 `ure.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+1* 个元素)。 ### Match 对象   匹配由 `match()` 和 `search()` 方法返回的对象。 - `match.group`([*index*]) 返回匹配(子)字符串。若完全匹配 *index* 为0, 对于每个捕获组为1或更多。 仅支持数字组。 - `match.groups`() 返回一个包含该匹配组的所有子字符串的元组。 注意:此方法的可用性取决于。MicroPython port - `match.start`(**[***index***]**) - `match.end`(**[***index***]**) 在匹配的子字符串组的开头或结尾的原始字符串中返回索引。 索引默认为整个组,否则将选择一个组。 注意:这些方法的可用性取决于。MicroPython port - `match.span`(**[***index***]**) 返回2元组。(match.start(index), match.end(index)) 注意:此方法的可用性取决于MicroPython port.