1,
默认情况下正则表达式是严格区分大小写的
2,
re模块的findall方法会匹配文本中所有符合条件的字符串,返回一个list
'''
text = 'Hi, I am Shirley Hilton. I am his wife. hi,this is xxx.'
m1 = re.findall(r'hi',text) #会匹配到一切含有hi的内容,比如Shirley里面的hi
m2 = re.findall(r'\bhi\b',text) #只匹配单词hi,'\b'表示对单词的分割,空格、标点、换行都算是单词的分割,而这个分割符不会匹配到结果中,即是说,这条语句只会匹配到hi这个单词
m3 = re.findall(r'\bhi',text) #除了能匹配到hi这个单词本身,还能匹配到his里面的hi
m4 = re.findall(r'[Hh]i',text) #能匹配到有Hi和hi的内容
'''
3,
'.'表示除了换行符以外的任意字符,注意是只匹配一个字符
'\S'表示不是空白符的任意字符,S是大写
''表示任意数量的连续字符,它表示前面的字符可以重复任意多次(包括0次),如
re.finaall(r'a', 'a aa aaxxxa')的结果是['a', '', 'aa', '', 'aa', '', '', '', 'a', '']
''
4,
从下面一段文本中,匹配出所有s开头,e结尾的单词。
'''
text2 = 'site sea sue sweet see case sse ssee loses'
m = re.findall(r'\bs[a-zA-Z]*e\b',text2)
print(m)
m1 = re.findall(r'\bs\S*e\b',text2)
print(m1)
'''
5,
写一个正则表达式,能匹配出多种格式的电话号码,包括
(021)88776543
010-55667890
02584453362
0571 66345673
'''
'(?0\d{2,3}[) -]?\d{7,8}'
'''
6,
正则表达式的 |,相当于or,
注意:使用“|”时,要特别提醒注意的是不同条件之间的顺序。匹配时,会按照从左往右的顺序,一旦匹配成功就停止验证后面的规则。
比如 r'\d{3}|[a-z]{3}' 表示匹配三位数的数字字符串或者连续的三个小写字母
正则表达式30分钟入门教程:
https://deerchao.cn/tutorials/regex/regex.htm#updatelog
网友评论