python 元字符

15.2 正则表达式使用的特殊符号和字符:

现在,我们来介绍最常用的元字符(metacharacters)----特殊字符和符号,

正式它们赋予了正则表达式强大的功能和灵活性。

符号

literal               匹配字符串的值                                  foo

import re
a='foo2'
if (re.match("foo",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111


re1|re2  匹配正则表达式re1或re2     foo|bar

import re
a='bar2'
if (re.match("foo|bar",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111	

.   匹配任何字符(换行符外)                     b.b


import re
a="aib"
if (re.match("a.b",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111

import re
a="a\nb"
if (re.match("a.b",a)):
    print '1111'

C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py

Process finished with exit code 0

import re
a="a\nb"
print a
# if (re.match("a.b",a)):
#     print '1111'

C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
a
b

^            匹配字符串的开始                     ^Dear

*             匹配前面出现的正则表达式零次或多次                 [A-Za-z0-9]*


import re
a="99"
if (re.match("[A-Z]*",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111

import re
a="^^"
if (re.match("[A-Z]*",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111

+     匹配前面出现的正则表达式一次或多次           

import re
a="^^"
if (re.match("[A-Z]+",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py

Process finished with exit code 0


import re
a="X"
if (re.match("[A-Z]+",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111

?   匹配前面出现的正则表达式零次或一次         

import re
a="go"
if (re.match("goo?",a)):
    print '1111'
	

import re
a="god"
if (re.match("go?d",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111

import re
a="good"
if (re.match("go?d",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py

Process finished with exit code 0


import re
a="g322d"
if (re.match("g[0-9]{3}d",a)):
    print '1111'
	
{M,N}   匹配重复出现M此到N次的正则表达式               【0-9】{5,9}

import re
a="g32525d"
if (re.match("g[0-9]{3,5}d",a)):
    print '1111'

C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111

import re
a="aaaa"
if (re.match("[aeiou]",a)):
    print '1111'

C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111

import re
a="a44"
p=re.compile("(.*?)[0-9]")
m=p.match(a)
print m.group(1)

C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
a

\d  匹配任何数字,和[0-9]一样(\D是\d的反义:任何非数符字)  	
	
import re
a="data1.txt"
if (re.match("data\d.txt",a)):
    print '1111'

	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a14.py
1111

import re
a="data1.txt"
if (re.match("data\d.txt",a)):
    print '1111'
	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a14.py
1111

\w  匹配任何数字字母字符,和[A-Za-z0-9]相同(\W是\w的反义)

import re
a="anb"
if (re.match("[A-Za-z]\w+b",a)):
    print '1111'

	
C:\Python27\python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a14.py
1111

猜你喜欢

转载自blog.csdn.net/zhaoyangjian724/article/details/80453091