我想弄清楚为什么下面的代码打印“2”而不是“1”
import re
line = "9111222"
m = re.match( r'.*(\w)\1+', line)
print m.group(1)
我知道 re.match 尝试匹配字符串的开头,但我假设它会看到“111”并打印“1”
最佳答案
正则表达式中的*
量词是贪婪,这意味着它将尝试匹配尽可能多的匹配项。在您的字符串中,91112(2)2
将允许 .*
匹配最多的字符,因此这是引擎选择的匹配项,倒数第二个 2
被捕获。
关于python - 使用 re.match 查找重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40814434/