在Python中查找字符串内容
有一个字符串,它里面包含了数字和字母。
我需要在这个字符串中找到一个完整的数字,这个数字里包含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']