我有一個大的文件,我需要通過使用來使用搜索RE的蟒蛇,正則表達式:我需要什麼RegEx?
下面是該文件的一個示例:
76360247039795},{"number":522141635,"catalog"
我需要打印出只,經過{「號出現的數字流「:
此文件太大而無法發佈所有內容,並且此字符串出現約200次。這就是爲什麼我認爲我需要使用RE和我的研究,我認爲我需要使用的東西叫做「環顧四周」,但不確定。
我一直在嘗試了好久了,請幫助
在此先感謝
我有一個大的文件,我需要通過使用來使用搜索RE的蟒蛇,正則表達式:我需要什麼RegEx?
下面是該文件的一個示例:
76360247039795},{"number":522141635,"catalog"
我需要打印出只,經過{「號出現的數字流「:
此文件太大而無法發佈所有內容,並且此字符串出現約200次。這就是爲什麼我認爲我需要使用RE和我的研究,我認爲我需要使用的東西叫做「環顧四周」,但不確定。
我一直在嘗試了好久了,請幫助
在此先感謝
import re
with open('myLargeFile.txt', 'r') as myFile:
numbersList = re.findall('{"number":(\d{9})', myFile.read(), re.DOTALL)
print numbersList
這將被檢索創建一個僅包含字符串後出現的9位數字的列表{"number":
如果數字您正在尋找可能有更多或更少的然後9位數字,用這個章前,而不是:
numbersList = re.findall('{"number":(\d{x,y})', myFile.read(), re.DOTALL)
,並替換x和y,以滿足您的需求。 x代表允許數字的最小位數,y代表最高位數。 例如,如果你想找到那些在數字5和9之間的所有數字,章恩將成爲:
numbersList = re.findall('{"number":(\d{5,9})', myFile.read(), re.DOTALL)
謝謝,出色地工作。如何更改您的答案以顯示不同尺碼的搭配? – user2148781 2013-03-09 19:27:23
再次感謝。完美搭配 – user2148781 2013-03-09 19:36:15
非常歡迎。 – 2013-03-09 20:19:07
試試這個,使用python re
模塊,定義一個模式,找到你的模式在一個字符串s
。
>>> s='76360247039795},{"number":522141635,"catalog"'
>>> import re
>>> re.findall('number":([0-9]+)', s) #this pattern
['522141635']
>>> re.findall('number":([0-9]{9})', s) #or this pattern works.
['522141635']
(...)匹配的任何正則表達式內的括號 和一組中的內容可以後的匹配已經 執行
可以考慮在'''' – pradyunsg 2013-03-09 19:18:38
之前放置''號碼',但是可以確定「:[有些數字]出現在文件的其他任何地方,所以它會接收其他數字流 – user2148781 2013-03-09 19:19:32
import re
s = '76360247039795},{"number":522141635,"catalog"'
nl = re.findall('"number":(\d{9})', s)
爲了您的JSON數據,這樣做:
import json
with open("filename.json") as f:
data = json.loads(f.read())
現在,假設你的文件是一個字典列表,像這樣:
[
{"number": 522141635, "catalog": "..."},
....
{"number": 999999999, "catalog": "..."}
]
將您的號碼打印爲:
for dictionary in data:
print dictionary["number"]
它是一個JSON文件嗎? http://www.json.org/如果是這樣,'import json; data = json.loads(open(「file」)。read())' – hughdbrown 2013-03-09 19:14:02
你在你的例子中有一個9位數字... – 2013-03-09 19:14:27
字符串/文件的開始和結束是怎樣的, '它? – pradyunsg 2013-03-09 19:15:02