2013-02-19 10 views
6

私は、文字列の束を持っていますが、私はこのフォーマットでものを維持したい:python文字列形式をチェックしますか?

X/X/XXXX XX:XX

文字列は、この形式を満たしているかどうかを確認する最も簡単な方法は何ですか? (2/'と': 'があるかどうかをチェックしたいと仮定して)

+7

最も簡単な方法は、それをdatetimeに変換し、失敗したときにエラーをキャッチすることです。それは日時計の権利ですか? – Ben

答えて

11

は、通常のexpresionで試してみてください。

import re 
r = re.compile('.*/.*/.*:.*') 
if r.match('x/x/xxxx xx:xx') is not None: 
    print 'matches' 

、あなたのニーズにマッチする表現を微調整することができます

+1

「xxxxx/xxxxx/x 124453:24345」のようなものもそれにマッチします。 '././. {4}。{2}:。{2}'を使用してください。 '\ d/\ d/\ d {4} \ d {2}:\ d {2}' – TyrantWave

+0

という数字でなければならないが、元の投稿はこう言っている。/'と': '。この例は日付形式のようですが、日付ですか? – kofemann

+0

彼は以前にも保持していたフォーマットを提供しました。これはdatetimeフォーマットとまったく同じように見えます。個人的にはそのフォーマットに正確にする必要があると思います。 – TyrantWave

4

time.strptimeを使用して、文字列から時刻構造体を解析します。文字列がフォーマットと一致しない場合は、文字列はValueErrorになります。

3

あなたが一致して正規表現を使用している場合は、最後には長すぎるためにも考慮しなければなりません。このコードの長さをテストすることなく、最後に非改行文字をすべらせることができます。ここに他の答えから変更されたコードがあります。

import re 
r = re.compile('././.{4} .{2}:.{2}') 
s = 'x/x/xxxx xx:xx' 
if len(s) == 14: 
    if r.match(s): 
    print 'matches' 
関連する問題