|
发表于 2020-3-11 16:12:35
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、()对取值的影响
>>> m = re.match("([abc])+", "abc")
>>> m.groups()
('c',)
这里增加了一个()后,为什么groups()的值变成了('c',),实在不理解,如果‘c’是一个子集,那'a'、'b'为什么不能是一个子集呢?
二、()对一些全局函数的影响
>>> p = re.compile(r'\W+')
>>> p2 = re.compile(r'(\W+)')
>>> p.split('This... is a test.')
['This', 'is', 'a', 'test', '']
>>> p2.split('This... is a test.')
['This', '... ', 'is', ' ', 'a', ' ', 'test', '.', '']
为什么这里加了()后,对取值也产生了影响,我感觉这个问题可能和问题一是一个问题,就一起发出来
三、{}里的东西怎么理解
>>> p = re.compile('section{ ( [^}]* ) }', re.VERBOSE)
>>> p.sub(r'subsection{\1}','section{First} section{second}')
'subsection{First} subsection{second}'
我自己的理解是不是'}'的东西,'^}'
放在[]里使其成为去功能化字符'[^}]'
然后使其出现0至无限次数'[^}]*'
然后再用()括起来([^}]*),好像又影响了识别?和问题一、二的影响一样吗?
最后那么这个东西为什么能识别'section{}'这个东西,不管{}里是啥!
我好晕!
谢谢大拿
一,自组是看‘(’来给编号的,所以就只有一个子组,这个子组最后给的值是'c'
二,我觉得就是这么规定的,捕获组的东西也会输出
三,( [^}]* ) 是第一号自组,然后把这个自组给了r'subsection{\1}' 里面的\1,然后再用r'subsection{\1}'替换‘section{First}’也是个语法问题,就是这个定义的
|
|