我有一个大的文件,我需要通过使用来使用搜索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