Python之正则表达式
01-常用符号
| 符号 | 说明 |
|---|
| . | 匹配任意字符,换行符"n"除外,可用"re.S"使dot能匹配"n" |
| * | 匹配前一个字符0次或多次 |
| ? | 匹配前一个字符0次或1次 |
| .* | 贪心算法 |
| .*? | 非贪心算法 |
| () | 括号内的数据作为结果返回,即可以获取到括号内匹配到的数据 |
| d+ | 匹配所有数字字符串 |
02-常用方法
| 方法 | 说明 |
|---|
| findall | 匹配所有符合规律的内容,返回包含结果的列表 |
| search | 匹配并提取第一个符合规律的内容,返回一个正则表达式object对象 |
| sub | 替换符号规律的内容,返回替换后的值 |
import re
# findall举例
myStr="djfalks2jdfnlka2danjskdj2lksadjflakd"
myFindall=re.findall('2(.*?)2',myStr,re.S)
print(myFindall)
myFindall=re.findall('2(.*?)2(.*?)2',myStr,re.S)
print(myFindall)
print('----------------------')
# search举例
myStr="djfalks2jdflka2dajskdj2lksadjflakd"
mySearch=re.search('2(.*?)2(.*?)2',myStr)
print(mySearch)
print(mySearch.group(0))
print(mySearch.group(1))
print(mySearch.group(2))
print('----------------------')
# sub举例
myStr="lgl-666-lgl-333-lgl-888-lgl-555"
mySub=re.sub('lgl(.*?)lgl','668',myStr) # '()'可要可不要!
print(mySub) # sub的返回值类型为str
print(myStr) #原字符串不改变!
print('----------------------')