Python正则表达式,匹配多个整数

chr*_*ris 2 python regex

下面的代码打印空白而不是'11',我无法弄清楚原因.更换[0-9]*[0-9]{1,2}打印"11".任何人都可以帮忙吗?

import re
test_string = 'cake_11xlfslijg'
pattern = '.*(?P<order>[0-9]*)'
result = re.compile(pattern).search(test_string)
if result:
    print 'result'
    print result.group('order')
else:
    print result
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 7

试试[0-9]+.该*翻译成"零个或多个",并有零个或多个数字就在你的字符串的开始.


Sen*_*ran 5

你的正则表达式应该是这个

pattern = '(?P<order>[0-9]+)'
Run Code Online (Sandbox Code Playgroud)
  1. 删除了第一个 .* ,因为它将对整个字符串进行贪婪匹配。
  2. 制作 [0-9]+ 因为它只会匹配数字,即使至少有一个数字,否则它将返回 None。