ure
– 正则表达式
这个模块实现了相应 CPython 模块的一个子集,如下所述。有关更多信息,请参阅原始CPython文档: re
该模块实现了正则表达式操作。支持的正则表达式语法是CPython re
模块的子集(实际上是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_]
。\
Escape character. Any other character following the backslash, except for those listed above, is taken literally. For example,
\*
is equivalent to literal*
(not treated as the*
operator). Note that\r
,\n
, etc. are not handled specially, and will be equivalent to literal lettersr
,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"
.逃避角色。除了上面列出的那些之外,反斜杠后面的任何其他字符都是字面意思。例如,
\*
等同于文字*``(不作为 ``*
运算符)。 需要注意的是\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', '', '']
函数
- ure.compile(regex_str)
编译正则表达式,返回 regex <regex> 对象。
- ure.match(regex_str, string)
编译 regex_str 并匹配 string 。匹配始终从字符串中的起始位置开始。
- ure.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).
编译 regex_str 并在字符串中搜索它。与
match
此不同,这将搜索匹配正则表达式的第一个位置的字符串(如果正则表达式已锚定,则仍可能为0)。
- ure.DEBUG
标记值,显示有关已编译表达式的调试信息。