我正在尝试解决一个问题,我想分别对字符串和int进行分类。我的问题是当用户输入任何内容然后我的程序分别找到所有单词(str)和int。
像用户输入“wert1234”那么它应该打印“string is wert”并且int是1234“
我试过很多方法,但我遇到了我试过的问题:
in=input()
for i in in:
if type(i)==type(str):
print(i)
但它不起作用我也尝试使用正则表达式:
import re
df=input()
regex = r"([a-zA-Z]+) \d+"
matches = re.findall(regex, df)
for match in matches:
print(match)
stri = r"([0-9]+) \d+"
search=re.findall(ret,df)
for j in search:
print(j)
所以我有两个问题:
首先请告诉我如果输入混合,我可以如何对字符串和int进行不同的分类?
第二个问题是如何只用正则表达式搜索int? 就像用户输入“wer 123”所以正则表达式只搜索123并打印。
答案 0 :(得分:0)
提取整数和这样的单词:
import re
my_string = 'wert1234word0test12'
integers = re.findall('\d+', my_string)
words = re.findall('[a-zA-Z]+', my_string)
<强>输出:强>
>>> integers
['1234', '0', '12']
>>> words
['wert', 'word', 'test']
您可能希望将整数列表中的项目转换为int类型,您可以通过使用列表解析来实现:
>>> [int(i) for i in integers]
[1234, 0, 12]