当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 正则表达式在处理txt文档时遇到的问题
帖子发表于 : 2010-02-16 18:49 

注册: 2010-02-12 10:33
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
先说点废话~老师在寒假给小弟一个课题,就是在matlab中运用正则表达式来处理txt文档,小弟matlab新手~正则表达式中文资料太少了~英文又太差劲,所以对英文资料只好自动过滤了~摸索了半个多月,删删改改,论坛也去了好多个·~~自我感觉这个题目如果能完成应该是对matlab中正则表达式的一个实例吧~希望大家看看~好了,转入正题~
先介绍下附件1的格式:
引用:
>AB016625
GCGGCCCAGGCCCGGAACCTTCCCTGGTCGTGCG
>AF008216
AAGCTTTCCT

题目1:将'>'符号后跟的的字符串(母字符串)提取出来并建立以字符串命名的文件夹(如文件夹ABO16625,文件夹AF008216)
题目2:在相应的文件下建立base.txt
题目3:将母字符串下面的字符串(子字符串)提取出来储存在相应的base.txt里面
这3个题目,小弟摸爬滚打算是做出来了,共享如下:
代码:
 
clc;clear;
file=fopen('fasta.txt','r');
fname={};fname1={};
fbase={};
while feof(file)==0
      str=fgetl(file);
      fname1=regexpi(str,'(?<=>)[A-Z0-9]+$','match');
      fbase=regexpi(str,'^[a-z]+$','match');
      if ~isempty(fname1)
        mkdir(fname1{1});
        k1=strcat('D:\mat\work\',fname1{1},'\base.txt');
        fname=[fname; fname1];
        fname1={};
      end
       if ~isempty(fbase)
        fid1=fopen(k1,'a');
        fwrite(fid1,fbase{1});
        fclose(fid1);
        fbase1={};
       end
end
fclose('all');
但是接下来的题目小弟实在困惑不已,望各位指教
先介绍hmrcds格式:
引用:

AB016625 12 24 35 67
AF008216 12 15
U25134 11 15

题目4:在相应母字符串命名的文件夹下建立cds.txt文档
题目5:将hmrcds中母字符串后的纯数字字符串提取出来存在各自的cds.txt中
题目6:在相应的文件夹中,由cds.txt中储存的偶数个数字为根据,提取出base.txt中的字符串,并储存在由此在相应文件夹下建立的ex1.txt,ex2.txt……中~,例如在AB016625命名的文件夹下,在base.txt中取出12-24的字符串存在ex1.txt,取出35-67的字符串存在ex2.txt中~
是不是看的头大~~~

题目4小弟可以做出来,题目5,小弟用正则表达式实在做不出来,题目6还没做到
另外,小弟今天知道用
f = fopen('fasta.txt','rt'); % t 属性根据需要可省略
x = fread(f,'*char');
fclose(f);
x=x'
可以将文档以字符串形式读入(textread读取后是一个cell格式),于是就用
fname1=regexpi(x,'(?<=>)\w+','match')
来完成题目题目1中的提取母字符串,结果在matlab运行后,不出现结果,同时cpu使用达到50%,不知道怎么回事~大家指点小弟下吧~~~


附件:
hmrcds.txt [8.55 KiB]
被下载 3 次
fasta.txt [1.36 MiB]
被下载 11 次
页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译