pythonrecompile中变量_python 中的 re.compile 函數

正則表達式功能十分強大。

“有些人面臨一個問題時會想:‘我知道,可以用正則表達式來解決這個問題。’於是現在他們就有兩個問題了”——Jamie Zawinski

同時正則表達式很難掌握。

正則表達式的各種規則就不在此贅述了,以下介紹在python的re模塊中怎樣應用正則表達式

1. 使用re.compile

re模塊中包含一個重要函數是compile(pattern [, flags]) ,該函數根據包含的正則表達式的字符串創建模式對象。可以實現更有效率的匹配。在直接使用字符串表示的正則表達式進行search,match和findall操作時,python會將字符串轉換為正則表達式對象。而使用compile完成一次轉換之后,在每次使用模式的時候就不用重復轉換。當然,使用re.compile()函數進行轉換后,re.search(pattern, string)的調用方式就轉換為 pattern.search(string)的調用方式。

其中,后一種調用方式中,pattern是用compile創建的模式對象。如下:

>>> import re

>>> some_text = 'a,b,,,,c d'

>>> reObj = re.compile('[, ]+')

>>> reObj.split(some_text)

['a', 'b', 'c', 'd']

2.不使用re.compile

在進行search,match等操作前不適用compile函數,會導致重復使用模式時,需要對模式進行重復的轉換。降低匹配速度。而此種方法的調用方式,更為直觀。如下:

>>> import re

>>> some_text = 'a,b,,,,c d'

>>> re.split('[, ]+',some_text)

['a', 'b', 'c', 'd']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值