回答
如果你只是在寻找另一个子内的子串,你可以使用in
:
>>> sub_num = "467033"
>>> my_num = "1.467033777777777"
>>> sub_num in my_num
True
不过,我怀疑还有更多的问题不仅仅是搜索字符串,这样做可能不是最佳的。你能更具体地说明你想做什么吗?
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']
和8146.70337777? – eyquem 2011-03-22 22:39:24
那么,我假设你在小数点前后需要它。最简单的事情就是编写大量的并行正则表达式,而python应该尽可能最佳地编译它。 – highBandWidth 2011-03-22 23:41:13
试试这个:
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']
这是一个体面的例子,但可能代价昂贵,取决于数据集。既然你已经用re来扫描字符串了,你还可以将哨兵值烧成模式。 – jathanism 2011-03-22 22:23:08
是的,我只是为了简单而不是表现 - 只是用更一般的东西更新了答案,一次搜索多个数字。 – samplebias 2011-03-22 22:30:25
我不明白jathanism的言论 - 在第一个代码中,我会这样做:''if'467033'in num.replace('。','')''第二个代码阻止这样做。但也许没有必要这样做,这取决于他想要什么。 – eyquem 2011-03-22 22:46:04
- 1. 在字符串中反向查找Python
- 2. Python - 在字符串中查找日期
- 3. Python:在字符串中查找“=”
- 4. Python在字符串中查找模式
- 5. python查找字符串中的子串
- 6. 查找字符串的Python
- 7. Python字符串查找
- 8. 在字符串中查找字符串
- 9. 在字符串中查找字符串
- 10. Python:在字符串中查找字符串
- 11. 在Python中查找字符串中的字符数
- 12. Python - 从字符串中查找日期
- 13. Python-仅在字符串的开头查找字符串
- 14. 在字符串中查找字符
- 15. 在Python字符串中查找UTF-8字符的索引
- 16. 在Python中查找字符串中是否存在字典值?
- 17. 查找字符串中的字符串
- 18. 查找字符串中的字符串
- 19. 查找字符串中的字符串
- 20. 在字符串C++中查找子字符串(在“hello”中查找“el”)
- 21. 在Python中以字符串的数字顺序查找最长的字符串
- 22. Python字符串操作 - 在许多字符串中查找唯一的数字
- 23. 在输入字符串中查找字符串中的子串
- 24. PYTHON:如何在Python中查找块注释字符串
- 25. 在字符串中查找数字
- 26. 在字符串lua中查找数字
- 27. 在字符串中查找数字
- 28. 查找一串Python字符串中的关键字?
- 29. 查找字符串匹配使用Python
- 30. 查找字符串位置 - Python的
是否有可能得到几行真实数据给你更相关的答案? – 2011-03-22 23:00:39
非常感谢,但我做到了! – Nick 2011-03-22 23:03:18