在mix输入中分别查找int和string

时间:2016-11-27 11:38:02

标签: python regex string python-2.7 python-3.x

我正在尝试解决一个问题,我想分别对字符串和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并打印。

1 个答案:

答案 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]