检查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--字符串格式化

python基础——字符串(str)

Python MySQLdb模块:不调用字符串格式可以插入或更新吗?

TypeError:在字符串格式化python期间并非所有参数都转换了

python面向对象进阶

python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object