这种结构化的数携租据交换格式,按照约定的格式来解析是最好的,而不是去用正则,这样能准确的取出数据中对应位置的数据。像这样
#!/usr/bin/env python#-*- coding: utf-8 -*-
import json
with open('google.txt') as f:
obj = json.loads(f.read())
urls = [e[0] for e in obj]
print(urls)
我用你上面的部唯判分数据做指隐改了一个测试用的google.txt,这个运行的结果是
[u'http://en.wikipedia.org/wiki/403(b)', u'http://www.investopedia.com/terms/1/403bplan.asp']
1-3f = fopen('fasta.txt','r')
x = fread(f,'*char')
fclose(f)
x=x'
[st,ed,mh]=regexp(x,'(?<=>)\S*','start','end','match')
st=[st,length(x)+3]
for n=1:length(ed)
mkdir(mh{n})
f=fopen([mh{n} '\base.txt'],'w')
fwrite(f,x(ed(n)+3:st(n+1)-3))
fclose(f)
end
4-6
f = fopen('瞎滑hmrcds.txt','r')
x = fread(f,'*char')
fclose(f)
x=x'
[st,ed,mh]=regexp(x,'\<[A-Z]\w*','start','end','match')
st=[st,length(x)+2]
for n=1:length(ed)
f=fopen([mh{n} '缺碧\伏神举cds.txt'],'w')
g=fopen([mh{n} '\base.txt'],'r')
y=regexp(x(st(n):st(n+1)-2),'\<\d+','match')
z=fread(g)
z=char(z')
for m=1:length(y)/2
fwrite(f,[y{2*m-1} ' ' y{2*m} ' '])
h=fopen([mh{n} '\ex' num2str(m) '.txt'],'w')
fwrite(h,z(str2num(y{2*m-1}):str2num(y{2*m})))
fclose(h)
end
fclose(f)
fclose(g)
end
你连语言都不说。。正则虽然很强大,但目前为止还是需要编程语言的配合的,我就用python回答你的问题了。
>>> f1 = "/start/百度/end/的竞争对手有/start/360/end/、/start/谷歌/end/等互联网公司。">>> f2 = " 百度/nt 的/r 竞争/v 对手/n 有/p 360/num 、/fu 谷/n 歌/n 等/p 互联网/n 公司/n 。/fu"
>>> import re
>>> pat1 = re.compile("返核/start/([^ ]+?)/end/")
>>> pat2 = re.compile(" ([^ ]+?)/nt")
>>> m1 = pat1.findall(f1)
>>> m2 = pat2.findall(f2)
>>> for item in m1:
if item in m2:
print item
百度
你用java的话,我让世铅就不写了。。坦好你可以把两个文件匹配的内容分别放到两个list里,然后遍历第一个列表,如果调用list2.indexOf(item),如果返回大于等于0,说明这个元素在第二个列表中存在,否则不存在
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)