python入门(八)单词堆中查找特定单词(正则表达式)

 
 
#用正则表达式找到文本中所有的s开头,e结尾的单词
import re

text = "site sea sue sweet see case sse ssee loses"

m = re.findall(r"\bs\S*e\b", text)

if m:

    print(m)

else:

    print('not match')


以上程序中所用到的知识点如下:


  • re.findall(r"正则表达式", text)

#re是python里的正则表达式模块

findall()

#用来按照正则表达式,匹配文本中所有符合条件的字符串

#返回结果是一个包含所有匹配的list


  • 正则表达式

记录文本规则的代码

#"\b"表示单词的开头或结尾

#"[]"表示满足括号中任一字符

#"."表示除换行符以外的任意字符

#"\S"表示不是空白符的任意字符

#"*"表示前面的字符可以重复任意多次

#"+"表示前面的字符可以重复1次以上

#"{数字}"表示前面的字符可以重复的次数

#"0-9"表示0-9一串连续的数字

#"\d"表示[0-9]


  • r"字符串"

#r即为raw的意思

#表示对字符串不进行转义


  • 注意可能出现的错误

分析题目后,你可能做出的正则表达式是这样的 "\bs.*e\b"

以上表达式错误的原因

#它可能将"sea sue"等内容匹配

#内部有空格也符合要求


猜你喜欢

转载自blog.csdn.net/y_silence_/article/details/79411618