1. 程式人生 > >python 正則表示式 字串的 匹配 替換 分割 查詢

python 正則表示式 字串的 匹配 替換 分割 查詢

In [1]: import re

In [2]: str1='imooc video=1000'

In [3]: str1.find('1000')#可以查找出索引值
Out[3]: 12

In [4]: str1='imoocvideo=1000'

In [5]: str1.find('1000')
Out[5]: 11

In [6]: info=re.search(r'\d+',str1)#'\d'代表任意一個數字,'+'可以匹配數字一次或者無限次,只能匹配最前面的

In [7]: info
Out[7]: <_sre.SRE_Match at 0xb6bf9b48>

In [8]: info.group()
Out[8]: '1000'



In [1]: import re

In [2]: str1='java=1000,python=9090'

In [3]: info=re.findall(r'\d+',str1)#找到所有匹配的字串,並把它們放到一個列表中

In [4]: info
Out[4]: ['1000', '9090']

In [5]: sum([int(x) for x in info])
Out[5]: 10090





In [25]: def add1(match):#傳入的match是一個字串物件,
   ....:     val=match.group()#匹配的字串
   ....:     num=int(val)+1 #強制轉換
   ....:     return str(num)#強制轉化
   ....:
In [28]: info=re.sub(r'\d+',add1,str4)#sub就是替換字串和函式

In [29]: info
Out[29]: 'python video =10001'
 

In [35]: str6='imooc:java c++ python c#'
 In [36]: re.split(r':| ',str6)#split用來分割字串,':|'的意思是隻要看見冒號和空格就會分割成一部分
Out[36]: ['imooc', 'java c++ python c#']
In [37]: re.split(r':| ',str6)
Out[37]: ['imooc', 'java', 'c++', 'python', 'c#']