Python中判断字符串是否仅包含变量和整数的条件

1 投票
2 回答
811 浏览
提问于 2025-04-17 20:09

我正在用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}$

撰写回答