2016-07-02 8 views
0

文字列を正確に1桁で一致させようとしています。例えば'5'、 '4'、 '3'など。Pythonでreライブラリを使用して正規表現の使用に役立てています。正規表現とpython正規表現を使って正確に1桁の数字を一致させるにはどうすればよいですか?

私はif文のそれぞれに設定されている以下の3つのフラグがあります。ここでは

import re 

if re.match(r'\d{2}:\d{2}:\d{2}', item): 
    timeflag = True 

if re.match(r'\d{4}', item): 
    voltflag = True 

if re.match(r'^\d{1}', item): 
    socflag = True 

は奇妙一部です:私は'2754'を言う値とアイテムを渡すとき、socflagはまだTrueに設定されますが'5'のように文字列を1桁だけに一致させた場合にのみ正しいとします。

正規表現の構文が間違っていると思われます。だから、どのように私はPythonの正規表現を使用して1桁の文字列に一致するのですか?

+0

を意味していますか?あなたの正規表現については、 '^ \ d {1} $'のように$を追加するだけです。 – kaveh

+0

0から5の間であるかどうか確認したい – ragzputin

+1

これを試してみてください:[^ [0-5] $ ' – kaveh

答えて

2

それが1桁と何もないから構成されている場合:それは他の非数字文字を含めることができる場合

re.match('^\d$', item) 

re.match('^\D*\d\D*$', item) 

あなただけの最初のことを確実に^で正規表現を開始することによりは、正規表現テストではitemという文字を使用しました。最後に$を使用することにより、itemの最後の文字が正規表現テストで使用されることを保証します。示された方法で^$の両方を使用することにより、すべての文字であるitemがテストに使用されることを保証します。

あなたの正規表現では、見つかった最初の数字とitem文字列の終わりの間に何らかの事態が起こります。

これはあなたのregexsをテストするための素晴らしいリソースです:私は、ユーザー@kavehによって行われたコメントに同意

https://www.debuggex.com/

1

。これは私が得たものです:

enter image description here

結果:あなたは `item`が0と9の間にあるかどうかを確認したい

enter image description here

関連する問題