Python教程

Python中正则表达式的使用

本文主要是介绍Python中正则表达式的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在进行正则表达式匹配时,直接使用正则表达式引擎和通过python中的字符串输入正则表达式引擎,需要输入不同的字符串,其主要的区别在于转义符的使用,而其中又分三种情况:

  • 转义符需要被python解析,以此输入部分python中的特殊字符
  • 转义符需要被正则表达式引擎解析,以此输入部分正则表达式语句中的特殊字符。
  • 转义符需要被正则表达式匹配

以下归纳整理三类python处理这一问题的方式:

1、鉴于python先解析字符串再将字符串输入正则表达式引擎,由引擎进行二次解析,故只需要通过逆推的方式计算正则表达式中转义符的个数

    • 需要被python解析:前加一个'\'即可输入特殊字符
    • 需要被正则表达式解析:在正则表达式中前加一个'\',由于输入正则表达式的应该是'\'本身,不能被解析为转义操作,故在转义符前加转义符,即使用'\\'
    • 使用正则表达式匹配转义符:在正则表达式中表示为'\\',自然的,在python的字符串中应该被写为:'\\\\'
    • 但是,这种最机械的写法会导致字符串中出现大量的转义符,影响简洁性和可读性

2、另一个选择是借用python的一个特殊机制——当出现python无法理解的语法时,python将不作解释直接将字符串输入引擎。

    • 需要被python解析:如果利用这一机制,很可能将不会解析而产生语法问题
    • 需要被正则表达式解析:正常使用前加'\',这也是这一异常处理机制的常规触发方式
    • 匹配转义符:按道理应当是'\\',但是无法确定会被解析为'\‘输入还是会被不加解析输入,与其在字符串中的位置有一定关系。
    • 综上,这一机制只适合那些只需在正则表达式中使用单次'\'的匹配场景

3、最好的办法是使用python的原生字符串r'string',它的作用是使python对该字符串的使用不加解析,从而在需要转义符出现在正则表达式中时,不需要使用'\\'而只需要使用'\'即可

    • 需要被python解析:不能使用原生字符串
    • 需要被正则表达式解析:只需使用'\'
    • 需要匹配转义符:使用'\\'即可匹配

正则表达式的使用范围相当广泛,已经用这个做了一部分编码识别的项目并且分享了。之后还会上线一篇利用正则表达式匹配识别更多编码类型 的心得嗷~

   

这篇关于Python中正则表达式的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!