寻找精通正则表达式(regexp)在matlab中应用的大侠
本人matlab是略知一二。对正则表达式也是只了解最基本的知识,2者结合起来就有点迷糊了,现在有个利用regexp来处理txt文档的问题,小弟攻不下来,特寻一高手来帮忙~...
本人matlab是略知一二。对正则表达式也是只了解最基本的知识,2者结合起来就有点迷糊了,现在有个利用regexp来处理txt文档的问题,小弟攻不下来,特寻一高手来帮忙~~~望各位不吝赐教~有愿意百忙中偷空帮下小弟忙的百度HI 下我,或者留言都可以,小问题,顶多花费各位半小时~~~先谢谢各位了
展开
2个回答
展开全部
正则表达式对象
对象,它包含正则表达式模式,并说明如何应用模式的标志。
语法
RE = /模式/ [标志]
语法2
RE =新的RegExp(“图案”,“标志” ;])
参数
重新
要求。将被分配到的正则表达式模式的变量名称。
模式
要求。要使用正则表达式模式。如果使用语法1,用一个“/”字符模式。如果语法2,引号引起的模式。
标志
选项。如果您使用的语法使用引号标志将导致。该标志可以组合使用,可用:
克(全文查找出现的所有pattern)
i(忽略大小写)
M(多行搜索) / a>
全局RegExp对象正则表达式对象相混淆。虽然这听起来像同样的事情,但他们有很大的不同。正则表达式对象的属性只包含一个正则表达式和全局RegExp对象的属性包含的信息不断更新,每场比赛。
正则表达式对象保存找到的字符串中的字符组合使用的模式。创建正则表达式对象,或在通过后的字符串的方法,或者字符串被传递给一个正则表达式的方法。最近搜索的信息被保存在全局RegExp对象。
当你事先知道搜索字符串的语法1。查找的字符串经常变化,或不知道用语法2,如由用户输入的字符串。
之前使用模式参数被编译成内部格式。语法1,加载的脚本,模式编译。对于语法2,模式之前,使用或调用编译方法编制。
-----------,
exec方法
正则表达式模式在字符串中查找,并返回包含数组的搜索结果,。
rgExp.exec(STR)
参数
rgExp
要求。包含正则表达式模式和标志的正则表达式对象。
海峡
要求。在其中执行查找的String对象或字符串文字。
exec方法没有找到匹配,则返回null。如果它发现一个匹配,则exec方法返回一个数组,并且更新全局RegExp对象的属性以反映匹配的结果。 0的数组元素中包含的完全匹配,1到n的元素包含在任何匹配的子匹配。这相当于没有设置全局标志(g)的比赛。
如果正则表达式设置全局标志,exec来lastIndex的值指示的位置开始寻找。如果你没有设置一个全局标志时,exec忽略的lastIndex的值的字符串的起始位置开始搜索。
exec方法返回一个数组具有三个属性的输入,index和lastIndex。输入属性包含了整个搜索字符串。索引属性包含查找字符串匹配的子串的位置。 lastIndex属性包含匹配的最后一个字符的下一个位置。
例如
下面的例子说明了exec方法使用:
功能RegExpTest(){
VAR版=(ScriptEngineMajorVersion()+“。” + ScriptEngineMinorVersion())
(版本> = 5.5){/ /测试JScript版本。
VAR SRC =“西班牙的雨主要落在平原上。”;
VAR RE = / \ w + /克; / /创建一个正则表达式模式。
VAR改编;
((ARR = re.exec(SRC))!= NULL)
的document.write(arr.index +“ - ”+ arr.lastIndex +“\ T“+ ARR);}
其他{
alert(”请使用更新版本的JScript);}
}
对象,它包含正则表达式模式,并说明如何应用模式的标志。
语法
RE = /模式/ [标志]
语法2
RE =新的RegExp(“图案”,“标志” ;])
参数
重新
要求。将被分配到的正则表达式模式的变量名称。
模式
要求。要使用正则表达式模式。如果使用语法1,用一个“/”字符模式。如果语法2,引号引起的模式。
标志
选项。如果您使用的语法使用引号标志将导致。该标志可以组合使用,可用:
克(全文查找出现的所有pattern)
i(忽略大小写)
M(多行搜索) / a>
全局RegExp对象正则表达式对象相混淆。虽然这听起来像同样的事情,但他们有很大的不同。正则表达式对象的属性只包含一个正则表达式和全局RegExp对象的属性包含的信息不断更新,每场比赛。
正则表达式对象保存找到的字符串中的字符组合使用的模式。创建正则表达式对象,或在通过后的字符串的方法,或者字符串被传递给一个正则表达式的方法。最近搜索的信息被保存在全局RegExp对象。
当你事先知道搜索字符串的语法1。查找的字符串经常变化,或不知道用语法2,如由用户输入的字符串。
之前使用模式参数被编译成内部格式。语法1,加载的脚本,模式编译。对于语法2,模式之前,使用或调用编译方法编制。
-----------,
exec方法
正则表达式模式在字符串中查找,并返回包含数组的搜索结果,。
rgExp.exec(STR)
参数
rgExp
要求。包含正则表达式模式和标志的正则表达式对象。
海峡
要求。在其中执行查找的String对象或字符串文字。
exec方法没有找到匹配,则返回null。如果它发现一个匹配,则exec方法返回一个数组,并且更新全局RegExp对象的属性以反映匹配的结果。 0的数组元素中包含的完全匹配,1到n的元素包含在任何匹配的子匹配。这相当于没有设置全局标志(g)的比赛。
如果正则表达式设置全局标志,exec来lastIndex的值指示的位置开始寻找。如果你没有设置一个全局标志时,exec忽略的lastIndex的值的字符串的起始位置开始搜索。
exec方法返回一个数组具有三个属性的输入,index和lastIndex。输入属性包含了整个搜索字符串。索引属性包含查找字符串匹配的子串的位置。 lastIndex属性包含匹配的最后一个字符的下一个位置。
例如
下面的例子说明了exec方法使用:
功能RegExpTest(){
VAR版=(ScriptEngineMajorVersion()+“。” + ScriptEngineMinorVersion())
(版本> = 5.5){/ /测试JScript版本。
VAR SRC =“西班牙的雨主要落在平原上。”;
VAR RE = / \ w + /克; / /创建一个正则表达式模式。
VAR改编;
((ARR = re.exec(SRC))!= NULL)
的document.write(arr.index +“ - ”+ arr.lastIndex +“\ T“+ ARR);}
其他{
alert(”请使用更新版本的JScript);}
}
展开全部
1-3
f = FOPEN(“fasta.txt','R');
X =弗里德(F,'字符');
FCLOSE(F)
X = X';
[ST,编辑,MH] =正则表达式(X,“()\ S *','开始”,“结束”,“比赛”) ;
ST = ST,长度(x)+3];
为n = 1:长度(ED)
MKDIR(MH {});
F = FOPEN ([MH {n}的'\ base.txt'],'w'的);
FWRITE(六中,x(主编(n)的3:日第(n +1)-3)); FCLOSE(F);
结束
4-6
F = FOPEN(“hmrcds.txt','R'); BR /> X =弗里德(F,'字符');
FCLOSE(F);
X = X';
[ST,编辑,MH] =正则表达式(X, \ <[AZ] \ w *“,”开始“,”结束“,”匹配“);
ST = ST,长度(x)+2];
当n = 1:长度(ED)
F = FOPEN([MH {n}的\ cds.txt','W');
G = FOPEN([MH {}'\ base.txt'], 'R');
Y =正则表达式(×(ST:ST(N +1)-2(N)),'\ <\ d +','匹配');
Z = FREAD (G);
Z = CHAR(Z');
为m = 1:长度(Y)/ 2
FWRITE(F,[Y {2 * M-1}'' Y {M}']);
H = FOPEN([MH {n}的\ EX'num2str(M)。txt'的,'W');
FWRITE(H (str2num(Y {2 * M-1}),Z:str2num(Y {2})));
FCLOSE(H);
结束
FCLOSE(F);
FCLOSE(G);
结束
f = FOPEN(“fasta.txt','R');
X =弗里德(F,'字符');
FCLOSE(F)
X = X';
[ST,编辑,MH] =正则表达式(X,“()\ S *','开始”,“结束”,“比赛”) ;
ST = ST,长度(x)+3];
为n = 1:长度(ED)
MKDIR(MH {});
F = FOPEN ([MH {n}的'\ base.txt'],'w'的);
FWRITE(六中,x(主编(n)的3:日第(n +1)-3)); FCLOSE(F);
结束
4-6
F = FOPEN(“hmrcds.txt','R'); BR /> X =弗里德(F,'字符');
FCLOSE(F);
X = X';
[ST,编辑,MH] =正则表达式(X, \ <[AZ] \ w *“,”开始“,”结束“,”匹配“);
ST = ST,长度(x)+2];
当n = 1:长度(ED)
F = FOPEN([MH {n}的\ cds.txt','W');
G = FOPEN([MH {}'\ base.txt'], 'R');
Y =正则表达式(×(ST:ST(N +1)-2(N)),'\ <\ d +','匹配');
Z = FREAD (G);
Z = CHAR(Z');
为m = 1:长度(Y)/ 2
FWRITE(F,[Y {2 * M-1}'' Y {M}']);
H = FOPEN([MH {n}的\ EX'num2str(M)。txt'的,'W');
FWRITE(H (str2num(Y {2 * M-1}),Z:str2num(Y {2})));
FCLOSE(H);
结束
FCLOSE(F);
FCLOSE(G);
结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询