首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi TPerlregEx正则有关问题

2012-09-23 
Delphi TPerlregEx正则问题。有一行HTML代码,我使用C#和Delphi的TPerlregEx正则表达式分别测试了一下。源文

Delphi TPerlregEx正则问题。
有一行HTML代码,我使用C#和Delphi的TPerlregEx正则表达式分别测试了一下。

源文件部分代码:

HTML code
<span id="content_164224">品味【生活】。</span>


在C#中使用正则表达式:

C# code
(?<=content_\d+">)[^<]+


结果为:品味【生活】。


在Delphi中使用和C#相同的正则表达式
C# code
(?<=content_\d+">)[^<]+

则报错,错误是:
TPerlRegEx.Compile() - Error in regex at offset 17: lookbehind assertion is not fixed length.

将正则表达式改为:
Delphi(Pascal) code
(?<=content_\d{6}">)[^<]+

则显示正常。

为什么在C#中可以正常使用\d+呢,而在TPerlregEx不行?按理说不应该出错的。

\d+就是在不能断言后边长度的情况下才使用的,如果能断言的话,那还要+号这个啥作用呀。

我这里不能使用\d{6},因为中间那几个数字是随机的,不知道会不会一直是6个数字,也有可能是7个,8个等。

想问下如何才能在Delphi中使用\d+这个用法。

[解决办法]
楼主如果用XE或XE2的话,可以试一下官方自带的正则库试试。System.RegularExpressions单元

热点排行