为什么这个正则匹配的结果是4位呢?

>>> re.match('\w+(?=\d)', 'aap23').group()

'aap2'

匹配的结果为什么是四位呢?\d不是代表着[0-9]的数据吗

\w包括字母和数字下划线.

1. \w包括字母和数字下划线。

2. \d表示数字。

3. +表示重复1次或多次,尽可能多重复。

4. +?表示重复1次或多次,但尽可能少重复。

5. 所以你如果需要懒惰匹配,可以用 re.match('\w+?(?=\d)', 'aap23').group()

exp1(?=exp2):查找 exp2 前面的 exp1