在Python中查找字符串内容

2 投票
3 回答
1305 浏览
提问于 2025-04-16 14:13

有一个字符串,它里面包含了数字和字母。
我需要在这个字符串中找到一个完整的数字,这个数字里包含467033。比如说:1.467033777777777。

谢谢!

3 个回答

1

如果你只是想在一个字符串里查找另一个子字符串,可以用 in 这个方法:

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

不过,我觉得你的问题可能不仅仅是查找字符串这么简单,可能这样做不是最好的方法。你能更具体地说说你想要做什么吗?

1

在编程中,有时候我们会遇到一些问题,尤其是在使用特定的工具或库时。比如说,当你在写代码的时候,可能会发现某些功能没有按照你的预期工作。这时候,很多人会去问问题,像在StackOverflow这样的社区里。

在这些社区里,大家会分享自己的经验和解决方案。你可以看到很多人提出问题,然后其他人会给出建议或者解决办法。这种互动非常有帮助,因为你可以从别人的经验中学习,避免自己走弯路。

总之,编程就像是一个不断学习和解决问题的过程,利用好这些社区资源,可以让你更快地成长。

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']
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']

撰写回答