当前位置: 首页 > 面试题库 >

Python研究

弓智明
2023-03-14
问题内容

我有一个包含的字符串变量

string = "123hello456world789"

字符串不包含空格。我想编写一个仅打印包含(az)的单词的正则表达式,我尝试了一个简单的正则表达式

pat = "([a-z]+){1,}"
match = re.search(r""+pat,word,re.DEBUG)

match对象仅包含单词Hello,而单词World不匹配。

使用时,re.findall()我可以同时获得HelloWorld

我的问题是为什么我们不能这样做re.search()

如何处理re.search()


问题答案:

re.search()在字符串documenation中找到
一次 模式:

扫描字符串以查找正则表达式模式产生匹配项的位置,然后返回相应的MatchObject实例。如果字符串中没有位置与模式匹配,则返回None;否则,返回None。请注意,这与在字符串中的某个点找到零长度匹配不同。

为了匹配 每一个
发生,你需要re.findall(),文档:

返回字符串中模式的所有非重叠匹配项,作为字符串列表。从左到右扫描字符串,并以找到的顺序返回匹配项。如果模式中存在一个或多个组,则返回一个组列表;否则,返回一个列表。如果模式包含多个组,则这将是一个元组列表。空匹配项将包括在结果中,除非它们碰到另一个匹配项的开头。

例:

>>> import re
>>> regex = re.compile(r'([a-z]+)', re.I)
>>> # using search we only get the first item.
>>> regex.search("123hello456world789").groups()
('hello',)
>>> # using findall we get every item.
>>> regex.findall("123hello456world789")
['hello', 'world']

更新:

由于您有重复的问题(如本链接所,我也在这里添加了其他答案:

>>> import re
>>> regex = re.compile(r'([a-z][a-z-\']+[a-z])')
>>> regex.findall("HELLO W-O-R-L-D") # this has uppercase
[]  # there are no results here, because the string is uppercase
>>> regex.findall("HELLO W-O-R-L-D".lower()) # lets lowercase
['hello', 'w-o-r-l-d'] # now we have results
>>> regex.findall("123hello456world789")
['hello', 'world']

如您所见,您在提供的第一个样本中失败的原因是因为大写,您可以简单地添加re.IGNORECASE标志,尽管您提到匹配项应该仅是小写。



 类似资料:
  • 1.自我介绍 2.可变类型不可变类型(说元组的时候说反了,面试官还提醒了一下) 3.init和new的区别 4.python中断言是什么有什么作用 5.OSI七层协议 6.扩展问题:听说过元类吗(只说了metaclass,其他的记不清了) 7.init中的self参数可以改名字吗 8.lambda函数怎么定义的?可以多行吗 9.看我实习里接触过PG库,问我怎么查看整表(忘了...) 10.字典怎么

  • 之前看了一个帖子说苏小研面试非常简单,我信以为真,然后也没怎么准备,结果自我介绍完就开始拷打,没有项目吹水时间,从python基础拷打到生成器、迭代器等高级用法,一些常用库的使用,然后拷打git操作,git rebase冲突了怎么办,服务器如何部署,数据库如何启动,如果平时真的参与了开发的话应该不难答上,而且基本上都是需要平时的积累,不是背八股抱佛脚就能解决的,因为python开发的岗位实在太少了

  • 一面: 两个面试官,一男一女 全程聊项目和实习,但是也只是让介绍一下 一些开放性问题,比如项目存在的问题等等 印象里没有八股,但是有类似于Python的应用场景,Python跟其他语言的区别等等 最后还问了本场面试你得到了什么 体验很好,聊的很开心,许愿有二面,喜欢苏小研捏 二面9.25,只有10分钟的hr面 9.26收到三面通知,在9.28,待更新 #中移苏州云能力中心苏小研#

  • HR提前一个半小时就打电话催促让进去等,还以为会提前呢 这也是第一次遇到盲面,全程不能提名字,会给你一个编号   共有两个面试官,看着都还挺年轻的 1. 自我介绍  2. 非科班是怎么学python的? 3. python 深拷贝浅拷贝 4. python去重方法及原理 5. django与flask差别 6. 数据库增删改查操作命令 7. tcp与udp区别 8. http数据头状态码?(这个实

  • 晚了约定时间一个小时,可能是我进去晚了,排序就靠后了 这一轮主要看的可能也就是仪容仪表之类的,之前邮件上说,需要“从镜头外走进来,展示身份证”,我还以为没有那么严格呢,谁知道确实需要这样 面试总共不到10分钟,大概问了这几个问题: 1. 自我介绍 2. 有offer吗?如何选择公司? 3. 对苏研的了解,来过苏州吗? 4. 成绩?排名?挂过科吗? 5. 反问 #校招##面经##中移苏州云能力中心苏

  • 1. 自我介绍 2. python八股: 元祖和列表的区别 python区分大小写吗 装饰器 闭包 3. 常用Linux命令,使用的Linux系统,怎么查看文件内容,vim,传输文件用什么协议,scp和cp有啥区别 4. 计网:三次握手,tcp和udp区别 5. 一些闲聊,感觉自己啥也问不出来给面试官不知道问啥了 6. 用过的排序算法,讲讲堆排序 7. 反问,国庆前结束 自己太菜咧,脑子一短路,啥