我正试图将一个字符串与其中的一个数字进行匹配。e、 例如,“5”、“4”、“3”,等等。我正在使用python中的re
库来帮助我使用regex。
我有以下三个标记,分别用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'
。
我怀疑我的regex语法不正确。那么,如何使用python正则表达式匹配一个一位数的字符串呢?
我同意用户@kaveh的评论。这就是我得到的:
结果:
如果它由1位数字组成,而没有其他数字:
如果它可以包含其他非数字字符:
通过使用
^
启动regex,您只需确保在regex测试中使用了item
的第一个字符。通过在末尾使用$
,您将确保在regex测试中使用item
的最后一个字符。通过按所示方式同时使用^
和$
,您将确保在测试中使用item
的所有字符。正则表达式允许在找到的第一个数字和
item
字符串的结尾之间发生任意数量的事情。这是测试regex的好资源:
https://www.debuggex.com/
相关问题 更多 >
编程相关推荐