您的位置:程序门 -> delphi -> 语言基础/算法/系统设计



从动态字符串中提取字符串


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


从动态字符串中提取字符串
发表于:2007-09-04 22:40:28 楼主
下面是动态生成的字符串:
      matlab   5.0   mat-file,   platform:   pcwin,   created   on:   tue   sep   04   22:19:02   2007                                                                                                       im       p                          a   r   r   a   y   (   [   [   3   6   1   6   1   2   1     /   1   3   7   4   7   2   *   x   1   -   2   4   4   ]   ,   [   5   6   1   7   8   5   9   /     2   0   8   8   8   3   2   *   x   1   +   6   3     3   4   8   5   3   /     2   5   5   5   5   2   *   x   2   -   2   2   6   1   /   5   ]])
          其中array()里的东西是自动生成,它可能包含多个[......],这样的内容。
我想把[]里的能容提取出来,不知大家有什么好的办法没?
发表于:2007-09-05 00:51:371楼 得分:0
不知道正则表达式能不能做到,没试过。
发表于:2007-09-05 09:21:132楼 得分:0
光是提取很容易,用pos加个循环就可以。
问题是,[]有嵌套,对嵌套的你希望怎样处理?

如果只是要提取最内层的:

var   s   :   string;
    m,n:integer;

s   :=   'matlab   ...';
while   s <> ''   do
begin
    m   :=   pos('[',s);
    if   m <=0   then   break;
    s   :=   copy(s,   m+1,   maxint);
    n   :=   pos(']',s);
    if   n <=0   then   break;
    showmessage(stringreplace(copy(s,1,n-1),   '[',   '',   [rfreplaceall]));
    s   :=   copy(s,   n+1,   maxint);
end;
发表于:2007-09-05 09:54:383楼 得分:0
to:风舞轻扬·白首为功名
其实最外面有一个[],它里面有若干个[],[],我就想提取它里面[]中的内容,
看了你的代码我有点思路了,可以把最外面的[]去掉,再用你的做循环


快速检索

最新资讯
热门点击