百度知道-delphi2010正则表达式请教

哥们儿,谢谢你在知道上的回答,你提到的代码 已经可以循环读取出来了,还有个问题想帮忙看看 我的字符串是<td align="right"> 23斤 </td><td align="right"><span class="ok">23.6元</span></td> <td align="right">2条</td> 我要咋个用一条正则表达式匹配出 23斤 23.6元 2条 这些数据呢 , 我现在出现的问题是23.6元这个td里面匹配出来是整个span标签 而不是23.6元 ,而我又想只用一个正则表达式匹配出上面我列出来的值,就不知咋个写了,请赐教。
最新回答
蔚蓝的心

2024-07-02 10:09:32

       如果你要匹配的数据全是XX斤、XX元、XX条这样的话,可以用雹掘下面这个正则表达式试一试,如果更复杂的话可能就要麻烦一些了(不过应该也还有办法):

reg.RegEx:='>\d\d*\D*\d*[斤|元|条]<';

说明一下:

  1. >\d表示以>符号开始,第二位一定是一个数字;

  2. \d*\D*\d*的意思是第3位开始可能是任意多个数字(也可能是0个),然后接任意个非数字(因为可能会出现小数点,当然也同样可能是0个),再接任意个含信数字(因为可能会有小数点后的数字);

  3. [斤|元|条]<表示结尾的一定是斤、元、条这三个字中的一个,且最后是一个<符号;

  4. 另外你那个23斤前面的空格我直接删掉了作为源字符串的,如果可能存在有空格的话,这个正则表达式还要改一下。

       用这个条谈肆轮件能匹配出你想要的结果(当然你要用midstr来处理掉开始和结尾的>、<符号,用midstr前记得引用StrUtils名空间)。

最后:推荐你看一下MICROSOFT的正则表达式语法,可能会对你有所启发。

链接如下:

http://msdn.microsoft.com/zh-cn/library/ae5bf541
(VS.80).aspx