检查python字符串格式?
Posted
技术标签:
【中文标题】检查python字符串格式?【英文标题】:Check python string format? 【发布时间】:2013-02-04 16:11:48 【问题描述】:我有一堆字符串,但我只想保留这种格式的字符串:
x/x/xxxx xx:xx
检查字符串是否符合这种格式的最简单方法是什么? (假设我想检查它是否有 2 个 / 和一个 ':' )
【问题讨论】:
最简单的方法是将其转换为日期时间,并在失败时捕获错误。这是一个日期时间吧? 【参考方案1】:使用time.strptime 从字符串解析到时间结构。如果字符串与格式不匹配,则会引发ValueError
。
【讨论】:
【参考方案2】:如果你在 match 中使用正则表达式,你还必须考虑到结尾太长。如果不测试此代码中的长度,则可以在末尾滑动任何非换行符。这是从其他答案修改的代码。
import re
r = re.compile('././.4 .2:.2')
s = 'x/x/xxxx xx:xx'
if len(s) == 14:
if r.match(s):
print 'matches'
【讨论】:
【参考方案3】:尝试正则表达式:
import re
r = re.compile('.*/.*/.*:.*')
if r.match('x/x/xxxx xx:xx') is not None:
print 'matches'
您可以调整表达式以满足您的需求
【讨论】:
事情是,像'xxxxx/xxxxx/x 124453:24345'
这样的东西也匹配。使用:././.4 .2:.2
,假设它是任何字符。如果必须是数字:\d/\d/\d4 \d2:\d2
对,但原帖说:假设我想检查它是否有 2 个 / 和一个 ':'。该示例看起来像日期格式,但它是日期吗?
他还给出了他之前想要保留的格式,它看起来与日期时间格式一模一样——我个人认为需要与该格式完全一致。以上是关于检查python字符串格式?的主要内容,如果未能解决你的问题,请参考以下文章
Python MySQLdb模块:不调用字符串格式可以插入或更新吗?
TypeError:在字符串格式化python期间并非所有参数都转换了
python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object