15.2 正则表达式使用的特殊符号和字符:
现在,我们来介绍最常用的元字符(metacharacters)----特殊字符和符号,
正式它们赋予了正则表达式强大的功能和灵活性。
符号
literal 匹配字符串的值 foo
import re
a='foo2'
if (re.match("foo",a)):
print '1111'
C:Python27python.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:Python27python.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:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111
import re
a="a
b"
if (re.match("a.b",a)):
print '1111'
C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
Process finished with exit code 0
import re
a="a
b"
print a
# if (re.match("a.b",a)):
# print '1111'
C:Python27python.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:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111
import re
a="^^"
if (re.match("[A-Z]*",a)):
print '1111'
C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111
+ 匹配前面出现的正则表达式一次或多次
import re
a="^^"
if (re.match("[A-Z]+",a)):
print '1111'
C:Python27python.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:Python27python.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:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111
import re
a="good"
if (re.match("go?d",a)):
print '1111'
C:Python27python.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:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
1111
import re
a="aaaa"
if (re.match("[aeiou]",a)):
print '1111'
C:Python27python.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:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a15.py
a
d 匹配任何数字,和[0-9]一样(D是d的反义:任何非数符字)
import re
a="data1.txt"
if (re.match("datad.txt",a)):
print '1111'
C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a14.py
1111
import re
a="data1.txt"
if (re.match("datad.txt",a)):
print '1111'
C:Python27python.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:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a14.py
1111