模块之re等相关内容-23

re模块

# 正则表达式:由一系列特殊字符拼接而成的表达式/规则,该表达式用于从一个大字符串中匹配出符合规则的子字符串
import re
#1、\w 数字 字母 下划线
# print(re.findall('\w\w\w',"h ello 123_ (0"))
# ['ell', '123']

#2、 \W 非 数字 字母 下划线
# print(re.findall('\W',"h ello 123_ (0"))
# [' ', ' ', ' ', '(']

#3、\s 空白
# print(re.findall('\s',"h e\tll\no 123_ (0"))
# [' ', '\t', '\n', ' ', ' ']
# print(re.findall('\w\s',"h ello 123_ (0"))
# ['h ', 'o ', '_ ']

#4、\S 非 空白
# print(re.findall('\S',"h e\tll\no 123_ (0"))
# ['h', 'e', 'l', 'l', 'o', '1', '2', '3', '_', '(', '0']
#5、\d 数字
# print(re.findall('\d',"h e\tll\no 123_ (0"))
# ['1', '2', '3', '0']

#6、\D 非 数字
# print(re.findall('\D',"h e\tll\no 123_ (0"))
# ['h', ' ', 'e', '\t', 'l', 'l', '\n', 'o', ' ', '_', ' ', '(']

# print(re.findall("a\db","a1b a2b a b aab aaaaaaaa1b a2c a22c a 3c"))
# ['a1b', 'a2b', 'a1b']

#7、\n与\t
# msg="""h e\tll\n\no 123_ (0
# \t1
#     2
# 3
# """
# print(re.findall('\n',msg))
# ['\n', '\n', '\n', '\n', '\n', '\n'] # 换行符
# print(re.findall('\t',msg))
# ['\t', '\t'] # 制表符
# print(re.findall(' ',msg))
# [' ', ' ', ' ', ' ', ' ', ' ', ' '] # 空白符


#8、^与$
# print(re.findall("^egon","egon asdf 213123 egonafsadfegon"))
# ['egon']
#
# print(re.findall("egon$","egon asdf 213123 egonafsadfegon "))
# []
#
# print(re.findall("a\w\w\wc","ab12c3c a213c"))
# ['ab12c', 'a213c']
#
# print(re.findall("^a\w\w\wc$","ab_2c"))
# ['ab_2c']

#9、.与[]
#9.1 .:代表匹配一个字符,该字符可以是任意字符
# print(re.findall("a\db","a1b a2b aab aaaaaaab a+b a-b a c"))
# ['a1b', 'a2b']
# print(re.findall("a\wb","a1b a2b aab aaaaaaab a+b a-b a c"))
# ['a1b', 'a2b', 'aab', 'aab']
# print(re.findall("a.b","a1b a2b aab aaaaaaab a+b a-b a b a c"))
# ['a1b', 'a2b', 'aab', 'aab', 'a+b', 'a-b', 'a b']
# print(re.findall("a.b","a1b a2b aab aaaaaaab a\tb a-b a\nb a c",re.DOTALL))
# ['a1b', 'a2b', 'aab', 'aab', 'a\tb', 'a-b', 'a\nb']


#9.2 []:代表匹配一个字符,我们可以指定该字符的范围
# print(re.findall("a[+-]b", "a1b a2b aab aaaaaaab a+b a-b a c"))
# ['a+b', 'a-b']
# print(re.findall("a[.*/+-]b", "a.b a2b a*b a/b aab aaaaaaab a+b a-b a c"))
# ['a.b', 'a*b', 'a/b', 'a+b', 'a-b']
# print(re.findall("a[a-z]b", "a.b a2b a*b a/b aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
# ['aab', 'aab']
# print(re.findall("a[a-zA-Z]b", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
# ['aAb', 'aCb', 'aab', 'aab']
# print(re.findall("a\db", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
# ['a2b']
# print(re.findall("a[0-9]b", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
# ['a2b']

# [^...]代表取反
# print(re.findall("a[^0-9]b", "a.b a2b a*b a/b aAb aCb aab aaaaaaab a+b a-b a c")) # -放在[]内的开头或结果
# ['a.b', 'a*b', 'a/b', 'aAb', 'aCb', 'aab', 'aab', 'a+b', 'a-b']

#9.3 *: 左边那个字符出现0次或者无穷次
# print(re.findall("ab*","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
# ['a', 'ab', 'abb', 'abbbbbbbbbbbb']

#9.4 +: 左边那个字符出现1次或者无穷次
# print(re.findall("ab+","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
# ['ab', 'abb', 'abbbbbbbbbbbb']

#9.5 {n,m}: 左边那个字符出现n次到m次
# print(re.findall("ab{0,}","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
# ['a', 'ab', 'abb', 'abbbbbbbbbbbb']
# print(re.findall("ab*","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
# ['a', 'ab', 'abb', 'abbbbbbbbbbbb']
# print(re.findall("ab{1,}","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
# ['ab', 'abb', 'abbbbbbbbbbbb']
# print(re.findall("ab+","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
# ['ab', 'abb', 'abbbbbbbbbbbb']
# print(re.findall("ab{2,5}","a ab abb abbb abbbb abbbbbbbb abbbbbbbbbbbb bbbbbbbbb"))
# ['abb', 'abbb', 'abbbb', 'abbbbb', 'abbbbb']

#9.6 ?: 左边那个字符出现0次到1次
# print(re.findall("ab?","a ab abb abbbbbbbbbbbb bbbbbbbbb"))
# ['a', 'ab', 'ab', 'ab']

#9.7 .*: 匹配所有
# print(re.findall("a.*b","123 a1231-==-000b123123123123123b"))
# ['a1231-==-000b123123123123123b']
#
# print(re.findall("a.*?b","123 a1231-==-000b123123123123123b"))
# ['a1231-==-000b']

 

posted @ 2020-08-03 15:53  投降输一半!  阅读(133)  评论(0编辑  收藏  举报