鱼C论坛

 找回密码
 立即注册
查看: 69|回复: 1

python 正则表达式$用法

[复制链接]
发表于 2024-12-4 22:56:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有如下一段代码:
import re
text1 = 'haha'
text2 = 'haha\n'
text3 = 'haha\n\n'
text4 = 'haha\n\nha'

re1 = re.compile('$')

res1 = re1.findall(text1)
res2 = re1.findall(text2)
res3 = re1.findall(text3)
res4 = re1.findall(text4)

print(f're1:{res1},{res2},{res3},{res4}')
re1:[''],['', ''],['', ''],['']




疑问点:
1. 对于模式对象re1 = re.compile('$'), 执行res1 = re1.findall(text1), 是查找最后一个字符么?
2.上述输出的打印结果可否详细解释下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-12-4 22:56:32 | 显示全部楼层
1. 对于模式对象`re1 = re.compile('$')`,执行`res1 = re1.findall(text1)`,是查找最后一个字符么?

不是的。`$`在正则表达式中表示字符串的结尾,而不是查找最后一个字符。因此,`re1.findall(text1)`是在查找字符串`text1`的结尾位置。

2. 上述输出的打印结果可否详细解释下?

在你的代码中,`re.compile('$')`用于匹配字符串的结尾。`findall`方法会在每个匹配的位置返回一个空字符串,因为`$`本身不匹配任何字符,只是一个位置标记。

- `res1 = re1.findall(text1)`:`text1`是`'haha'`,结尾位置匹配,返回一个空字符串`['']`。
- `res2 = re1.findall(text2)`:`text2`是`'haha
'`,结尾位置匹配,返回一个空字符串`['']`。
- `res3 = re1.findall(text3)`:`text3`是`'haha

'`,结尾位置匹配,返回一个空字符串`['']`。
- `res4 = re1.findall(text4)`:`text4`是`'haha

ha'`,结尾位置匹配,返回一个空字符串`['']`。

因此,`print(f're1:{res1},{res2},{res3},{res4}')`的输出是`re1:,, ,`,因为每个`findall`调用都返回一个包含空字符串的列表。


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-5 11:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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