Python正则表达式匹配选项卡后的整数

时间:2015-05-12 05:31:53

标签: python regex

如何匹配选项卡后写入的整数?这是什么正则表达式?

我试过这个:

line = '0     1'
re.match('\t+\d',line)

但这不起作用 - 1不匹配。

我希望1匹配并返回。

3 个答案:

答案 0 :(得分:3)

你的正则表达式失败的原因是标签实际上是四个空格。如果字符串实际上比您的示例更复杂,则可以使用\Stripe\Stripe::setApiKey("sk_test_BLAHBLAH"); $cu = \Stripe\Customer::retrieve("cus_BLAHBLAH"); $card = $cu->sources->retrieve("card_BLAHBLAH"); $card->address_line1 = "123 Bumbleberry Road"; $card->address_city = "Ridgewood"; $card->address_state = "NJ"; $card->address_zip = "07450"; $card->address_country = "US"; $card->save(); 匹配一个或多个空格字符(\s+中的任何一个):

[ \t\n\r\f\v]

打印

import re
line = "0     1"
print re.findall("\s+(\d+)", line)

如果你的字符串不比你的例子更复杂,你可以使用vks的解决方案,只匹配数字(['1'] )。

答案 1 :(得分:2)

\d+$

您可以简单地使用此功能。也可以使用re.findall代替match作为match的{​​{1}}匹配。

beginning

答案 2 :(得分:1)

re.match仅在该行的开头匹配:

>>> line='0\t1'
>>> print(line)
0   1
>>> re.match(r'\t(\d+)', line)          # no match...

您想要re.search代替:

>>> re.search(r'\t(\d+)', line)
<_sre.SRE_Match object; span=(1, 3), match='\t1'>
>>> re.search(r'\t(\d+)', line).group(1)
'1'