正则表达式的实现,对于语言来讲非常重要。字符串操作、匹配时非常方便。 python中也少不了正则表达式。先对于基本的正则表达式特殊符号和字符进行一个了解。例子是最好的学习方式。 ''' Created on 2011-6-6 @author: kuangtu ''' import regex import re def reg(): str ='seafoo' str1 = 'foofoo' pattern = 'foo' #从字符串的头开始进行匹配 m = re.match(pattern, str) if m is not None: print("found the pattern") else: print("can't found the pattern") #从字符串任意位置查找 m = re.search(pattern, str1) if m is not None: print("found the pattern") else: print("can't found the pattern") #正则表达式特殊符号和字符 #re1|re2 匹配正则表达式re1或者re2 pattern = 'foo|foob' str = 'fooaaa' m = re.search(pattern, str) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) str1 = 'foobaaa' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #.匹配任何字符(换行除外) str1 = 'foobaaa' pattern = "f.b" m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #^匹配字符串的开始 str1 = 'foobaaa' pattern = '^fo' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #$匹配字符串的末尾 str1 = 'foobaaa' #pattern = 'fo$' pattern = 'baaa$' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #*匹配前面出现的正则表达式零次或者多次 str1 = 'foobaaa' #pattern可以为f,fx,fxx,fxxx等' pattern = 'f[x]*' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #+匹配前面出现的正则表达式一次或多次 str1 = 'foobaaa' #pattern可以为fx,fxx,fxxx等' pattern = 'f[x]+' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #?匹配前面出现的正则表达式一次或零次 str1 = 'foobaaa' #pattern可以为f,fx等' pattern = 'f[x]?' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #{N}匹配前面出现的正则表达式N次 str1 = 'foobaaa' #pattern可以为fooo' pattern = 'f[o]{3}' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #{M,N}{N}匹配前面出现的正则表达式M次到N次 str1 = 'foobaaa' #pattern可以为foo,fooo' pattern = 'f[o]{2,3}' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #[...]匹配字符组里出现的任意字符 str1 = 'foobaaa' pattern = 'foo[x]' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) str1 = 'foobaaa' pattern = 'foo[xb]' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #[..x-y..]匹配从字符x到y中的任意一个字符 str1 = 'foobaaa' pattern = 'foo[b-d]' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) str1 = 'foobaaa' pattern = 'foo[c-d]' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #[^..]不匹配次字符集中出现的任意字符 str1 = 'foobaaa' pattern = 'foo[^c-d]' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #/d匹配任何数字/D为反义 str1 = '112225' pattern = '/d[1]*' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) str1 = '112225' pattern = '/D[1]*' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #/w匹配任务数字字母字符 str1 = 'a1b2c3d4e5' pattern = '/w[1]*' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) str1 = '(1b2c3d4e5' pattern = '^/w[1]*' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #/s匹配任何空白字符 str1 = 'a1 b2c3d4e5' pattern = '^/w[1]*/s' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) #其中的空格为tab str1 = 'a1 b2c3d4e5' pattern = '^/w[1]{1}/s/s/s/s/s' m = re.search(pattern, str1) if m is not None: print("found the pattern: ",pattern) else: print("can't found the pattern:", pattern) if __name__ == '__main__': reg() 以上是基本的正则符号使用。