现在比较常用的简洁数量词有 *
、+
、?
*
的作用是匹配*
号前面的字符0
次或者无限多次
注意观察
a
字符串中第一个单词pytho
(python
后面少了一个n
),第二个单词是正常的python
,第三个pythonn
(python
)后面多了一个n
。
import re
a = 'pytho0python1pythonn2'
r = re.findall('python{1,2}*',a)
print(r)
------------------------------------------
输出:
['pytho', 'python', 'pythonn']
*
号对前面的n
匹配了0
次或者多次
+
号匹配前面的字符一次或者无限多次
import re
a = 'pytho0python1pythonn2'
r = re.findall('python+',a)
print(r)
------------------------------------
输出:
['python', 'pythonn']
?
问号匹配前面的字符0
次或者1
次 (和之前非贪婪模式是有区别的)
import re
a = 'pytho0python1pythonn2'
r = re.findall('python?',a)
print(r)
-----------------------------------------
输出:
['pytho', 'python', 'python']
注意:
?
在普通字符串后面的问号和数量词后面的问号(非贪婪模式是有区别的)。