Tperlregex 如何匹配出多个字符串。

chinestercn 2011-03-18 12:31:45
RT。不知道这样表达是否正确。

假如有以下网页源码:
<span id="myid1">str1</span>

如何匹配出 str1 呢。当然实际运用时。不是这么有规律的。
我用:
(\<span\s{1}id="\S{1,10}"\>)(\S{1,10})(\<\/span\>)

可以把这一行匹配出来。但是我只想要str1 那个字符串。


应该如何写?







...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinestercn 2011-03-18
  • 打赏
  • 举报
回复
哈哈有意思又学了一招。
<.*?> 匹配 包括尖括号在内的所有字符。然后被替换成了空。当然留下来的就只有我们需要的了。

不过不太严禁哇。
我采用了chenpingqq 前辈的方法:

\<span\sid="\S{1,30}"\>(.{1,20})\<\/span\>

更好匹配:<span id="myid1">str1</span>
其中(.{1,20}) 就是我要的字符。
这时访问 tperlregex.groups[1] 就是结果了。

不过还是结了。谢谢楼上给的另一条思路。再感觉到正则的强大。


dinoalex 2011-03-18
  • 打赏
  • 举报
回复
[code=Delphi(Pascal)]
var
r: TPerlRegEx;
begin
r:= TPerlRegEx.Create(nil);
r.Subject := '<span id="myid1">str1</span>';
r.RegEx := '<.*?>';
r.Replacement := '';
r.ReplaceAll;
ShowMessage(r.Subject);
FreeAndNil(r);
[/Code]

测过,只显示str1,可以结帖了.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧