Python中判断字符串是否仅包含变量和整数的条件
我正在用Python 3写一个脚本,我需要一些类似这样的东西:
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中,这段代码会是什么样子的呢?
2 个回答
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
2
你想要做的是使用正则表达式来匹配一些内容。可以看看re模块。
>>> 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}$
。