有一个字符串,它包含数字和字符 我需要找到一个包含数字467033的整数(在该字符串中)。 例如1.467033777777777
谢谢
答案 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']