[^.]*\.?[^.]*$
Run Code Online (Sandbox Code Playgroud)
并且一定要match,不要search
>>> dot = re.compile("[^.]*\.[^.]*$")
>>> dot.match("fooooooooooooo.bar")
<_sre.SRE_Match object at 0xb7651838>
>>> dot.match("fooooooooooooo.bar.sad") is None
True
>>>
Run Code Online (Sandbox Code Playgroud)
编辑:
如果只考虑整数和小数,那就更容易了:
def valid(s):
return re.match('[0-9]+(\.[0-9]*)?$', s) is not None
assert valid("42")
assert valid("13.37")
assert valid("1.")
assert not valid("1.2.3.4")
assert not valid("abcd")
Run Code Online (Sandbox Code Playgroud)
不需要正则表达式,请参阅str.count():
str.count(sub[, start[, end]])返回[start,end]范围内substring sub的非重叠出现次数.可选参数start和end被解释为切片表示法.
>>> "A.B.C.D".count(".")
3
>>> "A/B.C/D".count(".")
1
>>> "A/B.C/D".count(".") == 1
True
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6140 次 |
| 最近记录: |