2013-03-24 67 views
1

所以,我工作的一個腳本在Python 3,我需要這樣的條件如果字符串只包含變量和整數的Python

control_input=input(prompt_029) 
if only string_029 and int in control_input: 
    #do something 
else: 
    #do something else 

基本上,我要求的代碼,將有這樣的條件這個:

if control_input == "[EXACT_string_here] [ANY_integer_here]" 

代碼在Python 3中看起來如何?

+1

用[正則表達式](http://docs.python.org/3/library/re.html#re.match)。 – millimoose 2013-03-24 16:35:51

回答

2

你想要的是做一個regular expression匹配。看看re module

>>> import re 
>>> control_input="prompt_029" 
>>> if re.match('^prompt_[0-9]+$',control_input): 
...  print("Matches Format") 
... else: 
...  print("Doesn't Match Format") 
... 
Matches Format 

正則表達式匹配^prompt_[0-9]+$如下:

^  # The start of the string 
prompt_ # The literal string 'prompt_' 
[0-9]+ # One or more digit 
$  # The end of the string 

如果該號碼必須包含三個數字,那麼你可以使用^prompt_[0-9]{3}$或最多三個,然後嘗試^prompt_[0-9]{1,3}$

0

沒有正則表達式

>>> myvar = raw_input("input: ") 
input: string 1 
>>> myvar 
'string 1' 
>>> string, integer = myvar.strip().split() 
>>> "[EXACT_string_here] [ANY_integer_here]" == "{} {}".format(string, integer) 
True 
+0

這實際上並沒有做OP所要求的 - 輸入中的整數部分是可變的,而不是1,並且沒有直接的方法來修改代碼以實現這一點。 – millimoose 2013-03-24 18:53:48

相關問題