Python re模块如何进行高效的正则表达式匹配?
- 内容介绍
- 文章标签
- 相关推荐
本文共计13324个文字,预计阅读时间需要54分钟。
这个模块提供了与Perl语言类似的正则表达式匹配操作。模式可以是Unicode字符串(如str)或8位字节串(如bytes)。但Unicode字符串与8位字节串不能直接匹配。
这个模块提供了与 Perl 语言类似的正则表达式匹配操作。
模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字节串 (bytes)。 但是,Unicode 字符串与8位字节串不能混用:也就是说,你不能用一个字节串模式去匹配 Unicode 字符串,反之亦然;类似地,当进行替换操作时,替换字符串的类型也必须与所用的模式和搜索字符串的类型一致。
正则表达式使用反斜杠('\')来表示特殊形式,或者把特殊字符转义成普通字符。 而反斜杠在普通的 Python 字符串里也有相同的作用,所以就产生了冲突。比如说,要匹配一个字面上的反斜杠,正则表达式模式不得不写成'\\\\',因为正则表达式里匹配一个反斜杠必须是\\,而每个反斜杠在普通的 Python 字符串里都要写成\\。
解决办法是对于正则表达式样式使用 Python 的原始字符串表示法;在带有'r'前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此r"\n"表示包含'\'和'n'两个字符的字符串,而"\n"则表示只包含一个换行符的字符串。 样式在 Python 代码中通常都会使用这种原始字符串表示法来表示。
绝大部分正则表达式操作都提供为模块函数和方法,在编译正则表达式. 这些函数是一个捷径,不需要先编译一个正则对象,但是损失了一些优化参数。
本文共计13324个文字,预计阅读时间需要54分钟。
这个模块提供了与Perl语言类似的正则表达式匹配操作。模式可以是Unicode字符串(如str)或8位字节串(如bytes)。但Unicode字符串与8位字节串不能直接匹配。
这个模块提供了与 Perl 语言类似的正则表达式匹配操作。
模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字节串 (bytes)。 但是,Unicode 字符串与8位字节串不能混用:也就是说,你不能用一个字节串模式去匹配 Unicode 字符串,反之亦然;类似地,当进行替换操作时,替换字符串的类型也必须与所用的模式和搜索字符串的类型一致。
正则表达式使用反斜杠('\')来表示特殊形式,或者把特殊字符转义成普通字符。 而反斜杠在普通的 Python 字符串里也有相同的作用,所以就产生了冲突。比如说,要匹配一个字面上的反斜杠,正则表达式模式不得不写成'\\\\',因为正则表达式里匹配一个反斜杠必须是\\,而每个反斜杠在普通的 Python 字符串里都要写成\\。
解决办法是对于正则表达式样式使用 Python 的原始字符串表示法;在带有'r'前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此r"\n"表示包含'\'和'n'两个字符的字符串,而"\n"则表示只包含一个换行符的字符串。 样式在 Python 代码中通常都会使用这种原始字符串表示法来表示。
绝大部分正则表达式操作都提供为模块函数和方法,在编译正则表达式. 这些函数是一个捷径,不需要先编译一个正则对象,但是损失了一些优化参数。

