如果字符串符合以下条件,我想找到最有效和最简单的方法来在 python 中进行测试:
- 不包含任何内容,除了:
- 数字(数字 0-9)
- 小数点:'.'
- 字母“e”
- 符号“+”或“-”
- 空格(任意数量)
- 标签(任意数量)
我可以使用嵌套的“if”循环等轻松地做到这一点,但我想知道是否有更方便的方法...
例如,我想要字符串:
0.0009017041601 5.13623e-05 0.00137531 0.00124203
为“真”,以下所有为“假”:
# File generated at 10:45am Tuesday, July 8th
# Velocity: 82.568
# Ambient Pressure: 150000.0
Time(seconds) Force_x Force_y Force_z
最佳答案
这对于使用 character class 的正则表达式来说很简单:
import re
if re.match(r"[0-9e \t+.-]*$", subject):
# Match!
然而,这将(根据规则)也匹配 eeeee
或 +-e-+
等...
如果您真正想做的是检查给定的字符串是否为有效数字,您可以简单地使用
try:
num = float(subject)
except ValueError:
print("Illegal value")
这将处理像 "+34"
或 "-4e-50"
或 "3.456e7 "
这样的字符串。
关于python - 如果字符串只包含 0-9、e、+、-、空格、制表符,则在 python 中进行优雅的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27291079/