首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中优雅的方法测试如果字符串只包含0-9,e,+,-,空格,制表符

python中优雅的方法测试如果字符串只包含0-9,e,+,-,空格,制表符
EN

Stack Overflow用户
提问于 2014-12-04 10:02:11
回答 5查看 1.2K关注 0票数 1

我希望找到在python中测试字符串是否通过以下条件的最有效和最简单的方法:

  • 除了:之外,什么都不包含
    • 数字(数字0-9)
    • 小数点:“.”
    • 字母“e”
    • 符号“+”或“-”
    • 空间(其中任何数目)
    • 选项卡(任意数量)

我可以很容易地使用嵌套的' if‘循环,等等,但我想知道是否有更方便的方法.

例如,我想要字符串:

代码语言:javascript
复制
0.0009017041601  5.13623e-05   0.00137531   0.00124203

为“真”,以下为“假”:

代码语言:javascript
复制
#   File generated at 10:45am Tuesday, July 8th
#   Velocity:  82.568
#   Ambient Pressure:  150000.0

     Time(seconds)      Force_x           Force_y           Force_z
EN

Stack Overflow用户

回答已采纳

发布于 2014-12-04 10:05:05

这对于正则表达式来说很简单,使用字符类

代码语言:javascript
复制
import re
if re.match(r"[0-9e \t+.-]*$", subject):
     # Match!

然而,这将(根据规则)也匹配eeeee+-e-+等.

如果您实际要做的是检查给定的字符串是否为有效数字,则只需使用

代码语言:javascript
复制
try:
    num = float(subject)
except ValueError:
    print("Illegal value")

这将处理像"+34""-4e-50"" 3.456e7 "这样的字符串。

票数 4
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27291079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档