回答
如果你只是在尋找另一個子內的子串,你可以使用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