如何匹配选项卡后写入的整数?这是什么正则表达式?
我试过这个:
line = '0 1'
re.match('\t+\d',line)
但这不起作用 - 1不匹配。
我希望1匹配并返回。
答案 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'