鱼C论坛

 找回密码
 立即注册
查看: 25040|回复: 43

[扩展阅读] Python3 如何优雅地使用正则表达式(详解四)

  [复制链接]
发表于 2015-1-6 11:34:16 | 显示全部楼层 |阅读模式
购买主题 已有 12 人购买  本主题需向作者支付 5 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-6 20:48:53 | 显示全部楼层
支持甲鱼哥。希望正则完了再来个多线程就完美了。 我有空多拉几个同学来鱼c让他们加入vip。

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
Ruide + 2 + 2 + 1 666 666 666 !!!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-2-2 15:13:28 | 显示全部楼层
感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-25 11:11:30 | 显示全部楼层
继续学习。。。。。:shock:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-14 23:40:43 | 显示全部楼层
说实在的,还是不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-16 13:57:44 | 显示全部楼层
有点看不懂:dizzy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-31 10:04:50 | 显示全部楼层
谢谢小甲鱼老师的详细讲解:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-24 18:09:49 | 显示全部楼层
看到这里有一点懵了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-13 17:58:52 | 显示全部楼层
小甲鱼老师 这个错误怎么解决  ,urllib.error.URLError: <urlopen error unknown url type: "http>

下面的是发的求助,希望老师解答    谢谢
http://bbs.fishc.com/forum.php?m ... peid%26typeid%3D392
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-15 10:12:34 | 显示全部楼层
8128697 发表于 2015-1-6 20:48
支持甲鱼哥。希望正则完了再来个多线程就完美了。 我有空多拉几个同学来鱼c让他们加入vip。

为什么加了‘\1’就返回‘the the’呢
不加\1的情况:p.search('   ').group() 返回的是第一单词“paris  "
                        p.findall('  ') 返回的是['paris','in','the','the']     #为什么每个单词后面没有‘ ‘空格
加上了'\1': p.seach().group()返回‘the the ’
                 p.findall() 返回['the']   #the后面并没有空格

不懂~~
求教高人!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2016-6-9 14:57:08 | 显示全部楼层
讲的很不错,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-29 22:34:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-17 10:53:39 | 显示全部楼层
热爱鱼C
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-20 17:57:45 | 显示全部楼层
本帖最后由 Python1000 于 2016-10-20 17:59 编辑

“有几个小括号就有几个子组”那段,‘(a)(b)’应该有三个小组:(ab)、(a)、(b);'a(b)'应该有两个小组:(ab)、(b);'(a(b))'应该有三个小组:(ab)、(ab)、(b)

(a(b))

(a(b))

(a)(b)

(a)(b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-20 18:18:54 | 显示全部楼层
drplant 发表于 2016-4-15 10:12
为什么加了‘\1’就返回‘the the’呢
不加\1的情况:p.search('   ').group() 返回的是第一单词“paris ...

我也不是很懂!!!!!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-3 19:57:06 | 显示全部楼层
Python1000 发表于 2016-10-20 18:18
我也不是很懂!!!!!!!!!!!!!!!

这段真心没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-29 15:22:03 | 显示全部楼层
drplant 发表于 2016-4-15 10:12
为什么加了‘\1’就返回‘the the’呢
不加\1的情况:p.search('   ').group() 返回的是第一单词“paris ...

不加\1应该是只匹配到字母+空格的形式就可以,所以用search返回了第一个字符串
用\1之后的形式应该相当于:(\b\w+)\s+(\b\w),字母+空格+字母,且两个字母字符串要是相同的,因为\1就代表应用前序号为1的子组,符合这中形式且空格左右字符相等的字符串只有the the。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 6 反对 0

使用道具 举报

发表于 2016-12-27 08:57:55 | 显示全部楼层
对小甲鱼点赞,感谢小甲鱼的教学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-6 00:19:34 | 显示全部楼层
本帖最后由 枯叶_ 于 2017-1-6 00:31 编辑

#用一段代码测试一下子组概念
import re

p1 = re.compile('(a)(b)')
m1 = p1.match('ab')
print('''p1 = re.compile('(a)(b)')
m1 = p1.match('ab')\n''')
print('m1.groups()  --> ',m1.groups())
print('m1.group(0) --> ',m1.group(0))
print('m1.group(1) --> ',m1.group(1))
print('m1.group(2) --> ',m1.group(2))
try:
    print('m1.group(3) --> ',m1.group(3))
except:
    print('没有第三子组')

p2 = re.compile('((a)b)')
m2 = p2.match('ab')
print('''\n\n\np2 = re.compile('((a)b)')
m2 = p1.match('ab')\n''')
print('m2.groups()  --> ',m2.groups())
print('m2.group(0) --> ',m2.group(0))
print('m2.group(1) --> ',m2.group(1))
print('m2.group(2) --> ',m2.group(2))
try:
    print('m2.group(3) --> ',m2.group(3))
except:
    print('没有第三子组')



#下面是输出结果

p1 = re.compile('(a)(b)')
m1 = p1.match('ab')

m1.groups()  -->  ('a', 'b')
m1.group(0) -->  ab
m1.group(1) -->  a
m1.group(2) -->  b
没有第三子组


p2 = re.compile('((a)b)')
m2 = p1.match('ab')

m2.groups()  -->  ('ab', 'a')
m2.group(0) -->  ab
m2.group(1) -->  ab
m2.group(2) -->  a
没有第三子组



#group()参数0或者空表示整段匹配的字符串,从1开始到后面就是groups()对应的几个字符串,这样理解对吧?如果有不对请指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-1-6 00:21:27 | 显示全部楼层
本帖最后由 枯叶_ 于 2017-1-6 00:24 编辑

本来想回复自己修改点内容,结果可以再原文修改,那这段就没用了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 01:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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