慕婉清9024213
ma = pa.findall(r'')
In [67]: ma = pa.findall(r'')
In [68]: print ma
['']
In [69]: ma = pa.findall(r' ')
In [70]: print ma
['', '']
看上面应该能明白了吧
橙子mm007
*号表示紧跟在它前面的单元应匹配零次或多次,也就是说在单元[a-z]中匹配零次或者多次,而[A-Z]中只匹配以此,你输入的字符串连续两个大写字母就只能匹配第一个,后面的无法匹配。
qq_胖胖_13
+代表前边的值匹配至少一次,也就是在下划线之前,你至少要有一个【a-zA-Z】范围的值,你是以下划线开始的,所以匹配失败
慕九州3266952
qq_哈do嗯_0
正则表达式在进行数量匹配时有{},+,*,?其中.*代表匹配除换行符以外的任意字符任意次,可以是0次。.代表除换行符以外的任意字符,*代表任意次,相当于{0,}
后边多一个?表示懒惰模式。必须跟在*或者+后边用.*? 是懒惰匹配,一旦匹配到第一个就不往下走了。.*+是无限匹配直到最后一个。
qq_琪_10
我知道了,match函数是从字符串的开始匹配的,正则表达式的每一部分都跟字符串的开始匹配
Liaobaozai
[1-9]?[0-9]:
这个里面是两个部分[1-9]?和[0-9]
第一部分:是匹配1到9之间的数字出现0次或1次
第二部分:是匹配0到9之间的数字至少出现一次
所以匹配‘09’这个字符串的时候,第一部分中不包含‘0’这个字符串,暂时的匹配结果为‘’(即空字符串),所以执行第二部分,第二部分包含‘0’,暂时的匹配结果为‘0’,匹配结束,输出结果‘0’
qq_1_晟_0
因为你后面还有个[0] 所以就匹配到了,去掉最后那个[0],就只能匹配0
慕粉4337361
要转义哪个字符?
无酒不欢滴酒必醉
[0-9][a-z]*? 匹配2个 因为[0-9]要匹配一个,[a-z]*?最少匹配0个,所以[0-9][a-z]*?就是1个元素
+?最少匹配一个 [0-9][a-z]+? 就是2个元素
( 上面那个打错了 )
慕勒8973080
用户中断 Ctrl+C
Yuan0123456789
* 可以匹配 1 次,*代表的是匹配前一个字符零次或者无限次。

nyzwt
+号匹配一次或多次,*号匹配0次或者多次
甲壳虫爱上了夏天
r'[A-Z][a-z] 你就只有一个'A' 啊
你写的表达式是匹配第一个大第二个小啊,二个都匹配到才有值,否则是 NoneType
这个可以满足你:r'[A-Z][a-z]?', 'A') 或 r'[A-Z]', 'A'
筱丶雨
re模块中的match方法匹配是从开头开始的
好久没改名了想换个
对,但是只能匹配一次,如果相匹配多次就要用到老师这次讲的知识
穷人孩子早当家丶
应该是可以的,我试了试,你是不是没有注意到× ? + 要转义的原因