【问题标题】:Check python string format?检查python字符串格式?
【发布时间】:2013-02-04 16:11:48
【问题描述】:

我有一堆字符串,但我只想保留这种格式的字符串:

x/x/xxxx xx:xx

检查字符串是否符合这种格式的最简单方法是什么? (假设我想检查它是否有 2 个 / 和一个 ':' )

【问题讨论】:

  • 最简单的方法是将其转换为日期时间,并在失败时捕获错误。这是一个日期时间吧?

标签: python string data-manipulation


【解决方案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/\d{4} \d{2}:\d{2}
      • 对,但原帖说:假设我想检查它是否有 2 个 / 和一个 ':'。该示例看起来像日期格式,但它是日期吗?
      • 他还给出了他之前想要保留的格式,它看起来与日期时间格式一模一样——我个人认为需要与该格式完全一致。
      猜你喜欢
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多