Python中的正则表达式(一)——search方法中表示单字符的方法

正则表达式在python中需要导入re模块。

我们先定义一个字符串 str1 = 'abcd13288889999'

然后使用search方法,search方法中传两个参数。

一、\d:代表一个数字

第一个参数:r为防转义,\d代表一个数字

第二个参数:str1

re.search(r'\d',str1)

执行结果为:

\d执行结果1

如图,结果:<re.Match object; span=(4, 5), match='1'>

search方法传入\d,会从字符串中找数字,此处传入1个\d,则找到下标为4-5的数字,span里的4,5就是这个意思。(相当于列表中的切片)

如果传入两个\d,执行结果则为:


\d执行结果2

如图,结果: <re.Match object; span=(4, 6), match='13'>

取4-6的位置,match结果取值13


为了方便,我们传入\d{11},这个方法就可以取出11位手机号了,我们来试一试:


\d执行结果3

如图,结果:<re.Match object; span=(4, 15), match='13288889999'>

这就是python正则中search的\d用法。

二、.:代表任意一个字符

下面让我们试试search中.的效果:

我们传入.,.代表任意字符


.执行结果

如图,结果: <re.Match object; span=(0, 1), match='a'>

取str1中下标0,1的字符串,取值为'a'


我们现在试试别的字符串传入的效果,比如传入\n999:


.和\n999执行结果

如图,结果: <re.Match object; span=(1, 2), match='9'>

我们看到,取值结果为9,没有取\n,所以search方法时不取\n的


三、[]:找字符串中是否有对应值

[]中写入789,字符串传入asda9asd:


[]执行结果

我们看到,他会找字符串里有没有789,找到了9,就返回了9的值。如果没有,则不返回。

如果字符串内把789都包含了,则找到最先找到的,返回:


[789]找asd879wqe

返回结果为8。


四、\D:非数字

传入一个\D,字符串内有数字和非数字,则找第一个非数字的字符,如图:


\D执行结果

多的例子就不举了,看图


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容