python小课堂23 - 正则表达式(一)
前言
今天来介绍一下Python的正则表达式。先来看下定义,何为正则表达式?
正则表达式是一个特殊的字符序列,一个字符串是否与我们给定的这个字符序列相匹配。正则最重要的功能就是处理字符串,例如检索你在某一段字符串中的特定单词,或者将原来某个位置的特定字符换成你想要的字符。而对于爬虫来说,正则表达式是必不可少的技能之一,要想正确提取源代码中你想要的信息内容,一般来说都会用到正则。
Python的re模块初体验
这里用例子来假设一个场景吧...现在你正打算转行踏入程序员的领域,然而面临的第一个问题就是选择一个主修语言来作为你转行后的学习动力。于是有个字符串language="Java,Python,Go,Js,C,C++,PHP",你下定决心要学Python,于是让你判断Python这门语言是否在这个字符串中存在!你会怎么做呢?
方案一:
通过python内置函数string.index('Python')
language = 'Java,Python,Go,Js,C,C++,PHP'
print(language.index('Python'))
>>> 5
结果说明在索引下标第5位开始,寻找到了Python字符串。
方案二:
通过in关键词
language = 'Java,Python,Go,Js,C,C++,PHP'
print('Python' in language)
>>> True
结果说明Python字符串存在于language中。
方案三:
通过re模块,需要import re。
import re
language = 'Java,Python,Go,Js,C,C++,PHP'
"""
re.findall(pattern, string, flags=0):
必填的两个参数:
第一个参数是正则表达式的模式;
第二个参数是原字符串
选填参数: flags ,传入例如忽略大小写的官方参数
返回的结果是: list
"""
result = re.findall('Python',language)
print(result)
>>> ['Python']
大家可以仔细看下代码,注释已经写得很清楚啦....使用re.findall,见名知意,是查找到所有匹配到的,所以返回的肯定是list。不信的话,我们将代码修改一下,在language里多加一个Python,看下结果如何:
Python正则表达式的原理性概念
这个标题起的名字有些拗口,因为我找不到好的概括词语了,现在就来解释一下吧....我们通过re模块来判断了一个字符串包含不包含与原始字符串,实际上这种用法是没有意义的,真正的正则表达式用法场景,应该是依赖于规则!
1.普通字符和元字符
还是举例说明,还是