半翅鸟 发表于 2012-2-28 15:21:54

求读取中间内容的正则表达式,额滴神啊【已解决】

本帖最后由 半翅鸟 于 2012-2-28 17:02 编辑

[我承认自己蠢的像个什么似的,受不了了,高手训练训练我吧,谢谢

我想把下面网页代码中间的【统一标价】的价格¥198.00元匹配出来:StringRegExp($sText, '统一标价:.*>([^<]+)', 3)我是这么写的,结果整个一行的tag都出来了


                市场价格:<span class="market">¥357.00元</span><br />
                本店价:<font class="price" id="ECS_SHOPPRICE">¥298.00元</font><br />
                          
                统一标价:<font class="price" id="ECS_RANKPRICE_24">¥198.00元</font><br />
                        </div>                                                                               
                                       
                颜色:<br />

我知道用这个笨方法可以匹配出来,但是也太笨了点StringRegExp($sText, 'price" id="ECS_RANKPRICE_24">([^<]+)', 3)

seniors 发表于 2012-2-28 15:24:21

24\"\>(.+)\<
不知道是不是

半翅鸟 发表于 2012-2-28 15:26:50

你的正则结果多了个<font>

afan 发表于 2012-2-28 15:41:00

标价:.+?>(.+?)<

user3000 发表于 2012-2-28 15:58:05

笨点也没什么不好吧, 如果前面固定是'24..'

半翅鸟 发表于 2012-2-28 16:10:49

回复 4# afan


    .+? 匹配除换行符外的任意字符,重复一次或更多次但尽可能少重复;也就是说这个表达式会匹配给定字符串前面的“除换行符外的任意字符”一遍,相当于充当了一些字符?

半翅鸟 发表于 2012-2-28 16:51:09

谢谢afan ,帮助我了N错,嘿嘿,谢谢,另外请教,如果中间需要换行怎么办,我用了\s不行。颜色:.+?\s(.+?)</失败了
颜色:<br />
                       
        <label for="spec_value_16390">
<input type="radio" name="spec_240" value="16390" id="spec_value_16390" checked onClick="changePrice()" />
        绿色
                </label>
                <br />

afan 发表于 2012-2-28 20:12:18

回复 7# 半翅鸟 (?s)颜色:.+?(\S\V+?)\s+</
页: [1]
查看完整版本: 求读取中间内容的正则表达式,额滴神啊【已解决】