我是第一次学习Python正则表达式,我在重复字符方面遇到了困难。你知道吗
我写这个程序是为了测试像浮点数格式的字符串:
for stuff in ["0", "1", "0.111", "0000001", ".011", "..0", "0..0"]:
if match("[0-9]*\.?[0-9]+", stuff):
print(stuff)
我的印象是\.
指定了一个.
字符,而?
表示只能有0个或其中一个字符。你知道吗
但是,我得到以下输出:
0
1
0.111
0000001
.011
0..0
我做错什么了?提前谢谢。你知道吗
Tags:
你的问题是你的正则表达式有什么问题。我想你自己的问题有答案。从“?”开始匹配0或1小数点“.”的出现,正则表达式匹配,即使该数字中没有“.”。这就是为什么你会看到非浮动被打印出来。你知道吗
re.match
在字符串开头查找匹配项,但允许不匹配的字符跟在匹配项后面。你知道吗要强制它一直匹配到底,可以向模式中添加
$
字符:要获取浮动:
输出:
相关问题 更多 >
编程相关推荐