如何使用python正则表达式将正则表达式与其中的一个数字匹配?

时间:2016-07-02 20:26:02

标签: python

我正在尝试匹配一个字符串,其中只有一位数字。例如' 5',' 4',' 3'等我在python中使用re库来帮助我使用正则表达式。

我有以下三个用各自的if语句设置的标志:

import re

if re.match(r'\d{2}:\d{2}:\d{2}', item):
    timeflag = True

if re.match(r'\d{4}', item):
    voltflag = True   

if re.match(r'^\d{1}', item):
    socflag = True

这是一个奇怪的部分:当我传递一个值为'2754'的项目时,socflag仍设置为True,即使它只应该是真的只匹配一个数字的字符串,如'5'

我怀疑我的正则表达式语法不正确。那么,如何使用python regex匹配一位数字符串?

2 个答案:

答案 0 :(得分:3)

如果它由1位数字组成,则不包含其他内容:

In [138]: %timeit using_numpy(df_p, df_c, df_f)
1000 loops, best of 3: 1.15 ms per loop

In [139]: %timeit using_pandas(df_p, df_c, df_f)
1000 loops, best of 3: 1.62 ms per loop

如果它可以包含其他非数字字符:

re.match('^\d$', item)

通过使用re.match('^\D*\d\D*$', item) 启动正则表达式,您只需确保在正则表达式测试中使用^的第一个字符。通过最后使用item,您将确保在正则表达式测试中使用$的最后一个字符。通过以显示的方式同时使用item^,您将确保在测试中使用 all $的字符。

你的正则表达式允许在找到的第一个数字和item字符串的结尾之间发生任何数量的事情。

这是测试正则表达式的绝佳资源:

https://www.debuggex.com/

答案 1 :(得分:1)

我同意用户@kaveh的评论。这就是我得到的:

enter image description here

结果:

enter image description here