2013-03-24 16 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