python 正则表达式

import re

str1 ='abcsdicsdj'

#.表示匹配某个字符后面的任意一个字符

print(re.findall('ab.',str1))#没有括号,那么abc都显示

print(re.findall('ab(.)',str1))#有括号,只显示

#*表示匹配a后面有若干个b的字符,包括0个的情况

str2='abbabafeaghab'

print(re.findall('ab*',str2))#*表示匹配a后面有若干个b的字符,包括0个的情况

#['abb', 'ab', 'a', 'a', 'ab']

##+表示a后面有若干个b,不包括0个的情况

print(re.findall('ab+',str2))##+表示a后面有若干个b,不包括0个的情况

#?表示a后面有0个或1个b,不包括多个

print(re.findall('ab?',str2))

#.*?  A(.*?)B  提取A与B之间的字符

str3='曾经沧海难为水除却巫山不是云取次花丛懒回顾半缘修道'

print(re.findall('不是(.*?)花丛', str3))#无法偷懒更多,已经规定了后一个字符必须是花丛

print(re.findall('不是.*?花丛', str3))#['不是云取次花丛']

#.*?属于偷懒匹配,尽可能少的匹配

print(re.findall('不是(.*?)', str3))#['']

#.*属于贪婪匹配,尽可能多的匹配

print(re.findall('不是.*',str3))#['不是云取次花丛懒回顾半缘修道']

#\w{n}匹配字母,数字,下划线,n表示匹配连续几位

str6='abc&^%$#@_098g'

print(re.findall('\w{3}', str6))#['abc', '_09']

#\W{n}匹配字母,数字,下划线以外的值

print(re.findall('\W', str6))#['&^%', '$#@']

#\s 匹配空字符串,\t制表符,\n换行符

str7='''空  山

不见人

但闻人语响  返景入

深林复  照青苔上'''

print(re.findall('\s',str7))

#\S 匹配空字符串,\t制表符,\n换行符以外的值

print(re.findall('\S',str7))

#\d匹配数字

str8='23gt876vf'

print(re.findall('\d',str8))

#\D匹配数字外的

print(re.findall('\D',str8))

#^匹配开头,$匹配结尾

list1=['abcde','dfabc','eeabcgg']

for onein list1:

#查找以abc开头的字符串

    if re.findall('^abc',one):

print(one)

# 查找以abc结尾的字符串#

    if re.findall('abc$',one):

print(one)

#re.I 不区分大小写

str9='ABCabcAbC'

print(re.findall('abc',str9,re.I))

#re.S 匹配多行中符合条件的值

a='''hellohtgerwcsxtevd

c35hytgevrcdworld'''

b=re.findall('hello(.*?)world',a)

c=re.findall('hello(.*?)world',a,re.S)

print(b)

print(c)

你可能感兴趣的:(python 正则表达式)