我有以下字符串:
s = Promo 77
我正在尝试输出“77”。
以下是我正在使用的正则表达式:
>>> re.sub(r'^[0-9]','',s)
'Promo 77'
这里的正确陈述应该是什么?
答案 0 :(得分:4)
>>> s = 'Promo 77'
>>> "".join(i for i in s if i.isdigit())
'77'
答案 1 :(得分:2)
您只需移动^
即可。 r'^[0-9]'
匹配字符串的开头,后跟一个数字(不会出现在字符串中)。您希望r'[^0-9]'
匹配任何不是数字的字符,或r'\D'
,它匹配完全相同的字符集。
答案 2 :(得分:1)
s = "Promo 77"
print re.findall("\d+",s)
['77']
print s.split()[-1]
77
re.sub(r'\D', "", s)
77
re.sub(r"[^\d+]","",s)
77