在Python中查找字符串

时间:2011-03-22 21:48:08

标签: python string

有一个字符串,它包含数字和字符 我需要找到一个包含数字467033的整数(在该字符串中)。 例如1.467033777777777

谢谢

3 个答案:

答案 0 :(得分:2)

试试这个:

import re

RE_NUM = re.compile('(\d*\.\d+)', re.M)

text = 'eghwodugo83o135.13508yegn1.4670337777777773u87208t'
for num in RE_NUM.findall(text):
    if '467033' in num:
        print num

打印:

1.4670337777777773

响应评论的广义/优化:

def find(text, numbers):
    pattern = '|'.join('[\d.]*%s[\d.]*' % n for n in numbers)
    re_num = re.compile(pattern, re.M)
    return [m.group() for m in re_num.finditer(text)]

print find(text, ['467033', '13'])

打印:

['135.13508', '1.4670337777777773']

答案 1 :(得分:1)

如果您只是在另一个子字符串中搜索子字符串,则可以使用in

>>> sub_num = "467033"
>>> my_num = "1.467033777777777"
>>> sub_num in my_num
True

然而,我怀疑你的问题不仅仅是搜索字符串,而且这样做可能不是最佳选择。你能更具体地了解你想要做什么吗?

答案 2 :(得分:1)

import re
a = 'e.g. 1.467033777777777\nand also 576575567467033546.90 Thanks '
r = re.compile('[0-9.]*467033[0-9.]*')
r.findall(a)
['1.467033777777777', '576575567467033546.90']