delphi 分割字符串求教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 分割字符串求教相关的知识,希望对你有一定的参考价值。

</ul>
<ul class="listbgdot" id="nav1_main_0">
<li><span class="time">2013-01-22</span><a href="/caishuidongtai/caishuidongtai/38984.html" target="_blank" title="今年1月1日起我市取消和免征19项行政事业性收费"><strong>今年1月1日起我市取消和免征19项行政事业性收费</strong></a></li>
<li><span class="time">2013-01-22</span><a href="/caishuidongtai/caishuidongtai/38985.html" target="_blank" title="市财政地税局荣获“浙江省依法行政示范单位”称号">市财政地税局荣获“浙江省依法行政示范单位”称号</a></li>
<li><span class="time">2013-01-18</span><a href="/caishuidongtai/caishuidongtai/38970.html" target="_blank" title="我市出台“营改增”试点期间过渡性财政扶持政策"><strong>我市出台“营改增”试点期间过渡性财政扶持政策</strong></a></li>
<li><span class="time">2013-01-17</span><a href="/caishuidongtai/caishuidongtai/38963.html" target="_blank" title="我市三农财政投入及民生支出占公共财政支出比重逐年提高">我市三农财政投入及民生支出占公共财政支出比重逐年提高</a></li>
<li><span class="time">2013-01-16</span><a href="/caishuidongtai/caishuidongtai/38956.html" target="_blank" title="市地税局税收动漫作品获第八届全国税收动漫大赛优秀奖">市地税局税收动漫作品获第八届全国税收动漫大赛优秀奖</a></li>
<li><span class="time">2013-01-15</span><a href="/caishuidongtai/caishuidongtai/38944.html" target="_blank" title="我市又增35家高新技术企业">我市又增35家高新技术企业</a></li>
<li><span class="time">2013-01-14</span><a href="/caishuidongtai/caishuidongtai/38939.html" target="_blank" title="市财政局荣获2012年度全省会计管理工作综合先进单位">市财政局荣获2012年度全省会计管理工作综合先进单位</a></li>
<li><span class="time">2013-01-14</span><a href="/caishuidongtai/caishuidongtai/38937.html" target="_blank" title="我市调高有关劳动保障待遇标准">我市调高有关劳动保障待遇标准</a></li>
</ul>
这样类型的字符串怎么样分解? 以<li></li>分割

参考技术A function CenterStr(Src: string; Before, After: string): string;
var
Pos1, Pos2: WORD;
begin
Pos1 := Pos(Before, Src);
Pos2 := Pos(After, Src);
if (Pos1 = 0) or (Pos2 = 0) then
begin
Result := '';
Exit;
end;
Pos1 := Pos1 + Length(Before);
if Pos2 - Pos1 = 0 then
begin
Result := '';
Exit;
end;
Result := Copy(Src, Pos1, Pos2 - Pos1);
end;
这是一个已知前串和后串,取前后串之间的字符串处理函数
根据你的情况,你可以这样使用,S:=CenterStr(s1,'<li>','</li>');s1就是你要处理的文本串.
但是你的字符串中,有多个<li></li>,这就不能简单的使用S:=CenterStr(s1,'<li>','</li>')了,必须每个要分割的串中只含有一对<li></li>,看了一下这HTML文本,如果复制到memo的TEXT中,它的每个自然段刚好是一行.这就好办了,首先,在界面上放一个MEMO控件,并使它无限小,然后设置它的可见属性为假,然后把你要分割的文本赋给MEMO,然后再来一行一行处理或者分割,这个函数可以处理查找很多问题,比如.S:=CenterStr(s1,'class="time">','</span')就可以得到2013-01-15.很有用的,你还可以配合POS,COPY函数使用使其功能更加强大.
参考技术B var
match: TMatch;
VL: TStrings
begin
VL := TStringList.Create;
for match in TRegEx.Matches(html, '<li>.*?</li>') do
begin
VL.Add(match.Value);
end;

//Delphi 2009以后的版本才有这种原生正则表达式支持追问

d7呢 d7该怎么解析?我用另外的方法解析出来了,代码比你的多了一倍,想搞个简单的

追答

去下个正则控件PerlRegEx

参考技术C 直接使用复制功能不结了?
VAR X,Y:字符串;
X:=复制(S,4,3);
Y:=拷贝(S,9,3);
参考技术D 用正则表达式分解

DELPHI有自动更新程序怎么破求教

参考技术A 你安装时禁止Delphi访问网络 或者 在防火墙中设置禁止Delphi访问网络。

以上是关于delphi 分割字符串求教的主要内容,如果未能解决你的问题,请参考以下文章

delphi 按照任意字符串分割语句

Delphi里面字符分割函数是啥 如何分割以 为分割的字符串

Delphi 分割字符串

delphi string.split 按照任意字符串分割语句

delphi字符串分割和比大小

Delphi 分割字符串,很长的字符串。