吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1087|回复: 15
收起左侧

[求助] 以下python正则错在哪?

[复制链接]
冥界3大法王 发表于 2020-11-18 18:37
import re
String1 = "cuicui1 cuicui2 cuicui8 meimei cuicui99"
MyRegex = "cuicui\d"
Compiled_Regex = re.compile(MyRegex, flags=re.I|re.M)


result1 = Compiled_Regex.findall(String1)
print (result1)


result2 = MyRegex.findall(String1)      # 我这咋就不行了呢? 不解,求解答,谢谢。
print (result2)

['cuicui1', 'cuicui2', 'cuicui8', 'cuicui9']
Traceback (most recent call last):
  File "<string>", line 9, in <module>
AttributeError: 'str' object has no attribute 'findall'

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cqfcy 发表于 2020-11-18 18:41
result2 = re.findall(MyRegex, String1)
姓木名木木 发表于 2020-11-18 18:52
本帖最后由 姓木名木木 于 2020-11-18 18:58 编辑

请问,这是什么鬼? result2 = MyRegex.findall(String1)


re.findall的用法;
[Asm] 纯文本查看 复制代码
re.findall(pattern, string, flags=0)
或
pattern.findall(string[, pos[, endpos]])
似水流年小小 发表于 2020-11-18 18:53

result2 = re.findall(MyRegex, String1),没看明白,我看一下自己多少硬币了。
 楼主| 冥界3大法王 发表于 2020-11-18 18:57
cqfcy 发表于 2020-11-18 18:41
result2 = re.findall(MyRegex, String1)

result2 = re.findall(MyRegex, String1)    为什么 这行 可以?

result2 = MyRegex.findall(MyRegex, String1) 又为什么 这行不可以?  我不想用re.
又为什么,下面的没问题?
import re
String1 = "cuicui1 cuicui2 cuicui8 meimei cuicui99"
MyRegex = "cuicui\d"
Compiled_Regex = re.compile(MyRegex, flags=re.I|re.M)

result1 = Compiled_Regex.findall(String1)
print (result1)

孤梦拾遗 发表于 2020-11-18 18:58
MyRegex 是string  string类型没有 findall 这个方法
result2 = Compiled_Regex.findall(String1)  这样就行了吧

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
冥界3大法王 + 1 + 1 谢谢@Thanks!

查看全部评分

cqfcy 发表于 2020-11-18 19:01
冥界3大法王 发表于 2020-11-18 18:57
result2 = re.findall(MyRegex, String1)    为什么 这行 可以?

result2 = MyRegex.findall(MyRegex, ...

图片.png
在python的文档里有用法 https://docs.python.org/zh-cn/3/library/re.html
MyRegex = "cuicui\d"
MyRegex只是一个字符串,字符串是没有findall方法的,只有调用re这个包的findall方法才可以

免费评分

参与人数 1吾爱币 +4 热心值 +1 收起 理由
冥界3大法王 + 4 + 1 说得明白彻底,感谢解答~~

查看全部评分

cqfcy 发表于 2020-11-18 19:06
再顺便弱弱的问一下,为什么发的链接地址都被取消了,不能点击链接跳转。
是不是等级不够,没有
签名中使用编辑器代码

这个权限?
 楼主| 冥界3大法王 发表于 2020-11-18 19:08
cqfcy 发表于 2020-11-18 19:01
在python的文档里有用法 https://docs.python.org/zh-cn/3/library/re.html
MyRegex = "cuicui\d"
My ...

@cqfcy
说得明白彻底,感谢解答~~

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqfcy + 1 + 1 谢谢@Thanks!感谢大佬分享的超多工具!

查看全部评分

asdkiyuas 发表于 2020-11-18 19:10
面向对象理解不够深刻!!
Compiled_Regex = re.compile(MyRegex, flags=re.I|re.M) #这一行可以理解为Compiled_Regex这个对象是类的实例化
result1 = Compiled_Regex.findall(String1) #那么这一行,就调用了它所属的类的方法!!
MyRegex #而这个对象只是string的类的实例,是没有findall方法的!

免费评分

参与人数 1热心值 +1 收起 理由
冥界3大法王 + 1 原来这样,编个程序,弄来玩玩,感谢你们助我修复bug

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-16 10:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表