Python - Regular Expression [regex]

import re

[ Method ]
re.match() และ re.search()  : return None ถ้าไม่ match

a = "213421321"
b = re.search('111', a)
c = re.search('213', a)

print b
if c:
print 'ma'
else:
print 'no'

output: None
             ma


re.finall()
หาข้อมูลที่ match กับค่าที่กำหนดตาม Pattern
Return ผลลัพธ์ที่พบเป็น list

re.sub()
ถ้า match จะนำ string ที่เตรียมไว้เข้าไปแทนที่

[code]
variable = "ak1 ak2 ak3"
result = re.sub("ak1", "ak2", variable)      #ค้นหา ak1 แทนที่ด้วย ak2 
print result
[/code]   

output : ak2 ak2 ak3





[ Pattern ]

\d  
มาจาก digit จะมองหาตัวเลข 1 ตัว (0-9) ส่วนตัวที่สองเป็นอะไรก็ได้ ที่ไม่ใช้ \n  (new line)

[code]
myinput = "711 Seven Ho He Ho 534 Seven and Chiyo 711 Seven"
result = re.findall('\d',myinput)
print result
[/code]

output : ['7', '1', '1', '5', '3', '4', '7', '1', '1']



\d+
มาจาก digit+ หมายถึง digit 1 ตัวขึ้นไป

[code]
myinput = "711 Seven Ho He Ho 534 Seven and Chiyo 711 Seven"
result = re.findall('\d+',myinput)
print result
[/code]

output : ['711', '534', '711']