我需要從wikipedia.org獲取一些數據。 我有字符串a ='4 200 000+文章',並且我需要得到int b = 4200000. 我已經得到了BS4的這個字符串,並且我試圖通過int(a)簡單解析,但它是 顯然這不起作用。 你能幫我嗎?高級從字符串解析爲int Python
-1
A
回答
1
你需要一個正則表達式來獲取數出這樣的文字:
import re
int_numbers = re.compile('\d[\d ]*')
def extract_integer(text):
value_match = int_numbers.search(text)
if value_match:
try:
return int(value_match.group().replace(' ', ''))
except ValueError:
# failed to create an int, ignore
pass
模式數字,後面接着0或更多更多的數字或空格匹配。
演示:
>>> a = '4 200 000+ articles'
>>> extract_integer(a)
4200000
如果您在輸入文字需要所有這樣的數字,使用.finditer()
和發電機:
def extract_integers(text):
for value_match in int_numbers.finditer(text):
try:
yield int(value_match.group().replace(' ', ''))
except ValueError:
# failed to create an int, ignore
pass
演示:
>>> for i in extract_integers('4 300 123 times 42'):
... print i
...
430
42
>>> list(extract_integers('4 300 123 times 42'))
[4300123, 42]
0
如果所有你想要做的是刪除除了數字以外的所有東西,你可以使用一些東西如:
>>> x = "500000+"
>>> import string
>>> all=string.maketrans('','')
>>> nodigs=all.translate(all, string.digits)
>>> x.translate(all, nodigs)
這將刪除字符串中除數字0-9之外的所有字符。
0
>>> import re
>>> a = re.findall(r'[\d ]+', '4 200 000+ articles')
>>> print a
['4 200 000', ' ']
>>> [x.replace(' ','') for x in a if x.strip()]
['4200000']
相關問題
- 1. 解析字符串INT
- 2. JavaScript從字符串解析int
- 3. C++從字符串指針解析int
- 4. 從javascript中的字符串解析Int
- 5. 試圖解析int字符串的輸入字符串int int
- 6. 如何將字符串解析爲int?
- 7. 無法將字符串解析爲int
- 8. 將字符串解析爲int
- 9. 字符串解析爲int語言
- 10. 將Postscript字符串解析爲int
- 11. 錯誤解析字符串爲int
- 12. Integer.parseInt不解析字符串爲int
- 13. 選擇分析的int,如果字符串可解析爲int
- 14. 解析int作爲字符串的字符串
- 15. OCaml將字符串解析爲字符串* Int列表
- 16. 解析我的字符串爲int導致python中的ValueError
- 17. python:從serial.read()解析字符串
- 18. 從javascript解析python文檔字符串
- 19. python解析xml字符串
- 20. 字符串解析 - Python
- 21. Python的解析字符串
- 22. 解析字符串 - 在python
- 23. 用Python解析字符串
- 24. 如何在SML中將字符串解析爲(int * int)元組?
- 25. 解析字符串 - 從字符串
- 26. 從解析字符串
- 27. Python:將字符串對象從文件解析爲python對象
- 28. 從一個字符串解析int - > list的地圖
- 29. Python中的高級字符串替換
- 30. 高級python字符串搜索