Python正则表达式的常见用法

正则表达式语法

  • 正则表达式是一个特殊的字符序列,它能方便的检查一个字符串是否与某种模式匹配。
  • 下面是则表达式的一些常见用法:
# 正则表达式

import re     # 正则表达式模块

# 匹配除了换行符之外的所有字符
m = re.findall('.', 'aa\ccdef')
print(m)
# 运行结果:['a', 'a', '\\', 'c', 'c', 'd', 'e', 'f']

# 转义字符
m = re.findall('\.', 'ad.cb')
print(m)
# 运行结果:['.']

# 字符集
m = re.findall('a[bcd]e', 'abeaceade') #字符集就是用[]扩起来的,只要匹配其中的任意一个字符都可以
print(m)
# 运行结果:['abe', 'ace', 'ade']

# 数字
m = re.findall('\d', 'abc123def')
print(m)
# 运行结果:['1', '2', '3']


# 非数字
m = re.findall('\D', 'abc123def')
print(m)
# 运行结果:['a', 'b', 'c', 'd', 'e', 'f']


# 空白字符
m = re.findall('\s', 'abc a\tb2c')
print(m)
# 运行结果:[' ', '\t']


# 非空白字符
m = re.findall('\S', 'abc a\tb2c')
print(m)
# 运行结果:['a', 'b', 'c', 'a', 'b', '2', 'c']

#数字和字母
m = re.findall('\w', 'abc#12#e#f-+')
print(m)
# 运行结果:['a', 'b', 'c', '1', '2', 'e', 'f']


#非数字和字母
m = re.findall('\W', 'abc#12#e#f-+')
print(m)
# 运行结果:['#', '#', '#', '-', '+']

#匹配开头
m = re.findall('^abc', 'abcabc') #匹配开头的abc
print(m)
# 运行结果:['abc']

#匹配结尾
m = re.findall('abc$', 'abcabc')  #匹配结尾的abc
print(m)
# 运行结果:['abc']

#不区分大小写
m = re.findall('abc', 'abcABc', re.I)
print(m)
# 运行结果:['abc', 'ABc']

#匹配换行
s = '
hello\nworld
' m = re.findall(r'
(.*)
', s, re.S) print(m) # 运行结果:['hello\nworld'] #匹配多行 m = re.findall('^abc','abc\nabc') print(m) # ['abc'] m = re.findall('^abc','abc\nabc',re.M) print(m) # ['abc', 'abc'] # 运行结果:['abc', 'abc'] # 匹配一个或0个 m = re.findall('ab?', 'abbbbaba') print(m) # 运行结果:['ab', 'ab', 'a'] # 匹配至少一个 m = re.findall('ab+', 'abbbbabb') # 匹配一个或着多个 print(m) # 运行结果:['abbbb', 'abb'] # 匹配至少0个 m = re.findall('ab*', 'aaabbabb') print(m) # 运行结果:['a', 'a', 'abb', 'abb'] #匹配以org结尾的邮箱 m = re.findall('\w+@\w+\.org','[email protected];[email protected]') print(m) # 运行结果:['[email protected]'] #其他规则 # 如果是多次调用某个正则,则最好先编译后使用,编译之后,可以多次使用 p = re.compile('^abc') m = p.findall('abc\nabc') print(m) # 运行结果:['abc'] m = p.findall('abcdef\nnfdsfabc') print(m) # 运行结果:['abc'] m = p.findall('abcdef\nnfdsfabc') print(m) # 运行结果:['abc']

你可能感兴趣的:(Python正则表达式的常见用法)