找回密码
 加入
搜索
查看: 8048|回复: 17

[IE类操作] 怎么用正则表达式获取以下代码中的中文内容

 火.. [复制链接]
发表于 2011-1-20 00:39:33 | 显示全部楼层 |阅读模式
<td colspan="2" align="left" style="font-size:14px; color:#000000;"><a href="url" target="_blank">华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)</a></td>
发表于 2011-1-20 01:03:19 | 显示全部楼层
$str = '<td colspan="2" align="left" style="font-size:14px; color:#000000;"><a href="url" target="_blank">华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)</a></td>'
$str = StringRegExpReplace($str, "[\x00-\xff]", "")
 楼主| 发表于 2011-1-20 01:48:06 | 显示全部楼层
谢谢您的帮助,不过不能得到“华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)”这样的全部内容,你这个表达式得到的是“华硕主板全固态”。还有能讲解一下\x00-\xff是什么意思吗?
发表于 2011-1-20 01:58:11 | 显示全部楼层
谢谢您的帮助,不过不能得到“华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)”这样的全部内容,你这个表达式 ...
Netfox 发表于 2011-1-20 01:48


那就请把问题写清楚呀
看看你的标题是:获取以下代码中的中文内容
发表于 2011-1-20 02:01:53 | 显示全部楼层
你要先把你倒底要得到什么,写清楚了才行,象“不过不能得到“华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)”,倒底是个特例还是泛指。若是泛指,是不是都是同样格式等等
 楼主| 发表于 2011-1-20 02:18:38 | 显示全部楼层
不好意思,没把问题阐述清楚,我是想要得到“华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)”这串中文产品名。
发表于 2011-1-20 02:43:16 | 显示全部楼层
还是没有说清楚,字符串特针呀,如是不是都是象这样:华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)

都有括号,还前后括号一个英文的,一个是中文的,还是:>华硕主板M4A88T-M(集成AMD 880G DDR3 全固态)<

都是前后带个“>"和”<"等等。用正则,就是利用String里的特针来取呀。
你说不清,就多举例子,原串是啥,你想得到的又是啥
 楼主| 发表于 2011-1-20 03:00:02 | 显示全部楼层
我想得到的就是一个产品名,请打开http://www.it-hztc.com/product.asp?tid=452这个连接,获取所有戴尔显示器的名称。
发表于 2011-1-20 05:08:14 | 显示全部楼层
$str ='src="uploadfile/2010122814124327235.jpg"  border="0" alt="戴尔E190S  19正" onload=''javascript'

$str = StringRegExpReplace($str, '(^.*")(戴尔.*?)(".*$)', "\2")
发表于 2011-1-20 09:34:48 | 显示全部楼层
#include <array.au3>
#include <INet.au3>
$urlsource=_INetGetSource ( "http://www.it-hztc.com/product.asp?tid=452" )
If Not @error Then
        $str=StringRegExp($urlsource,'\<A.*\>(.*?)(?=\<\/A\>)',3)
        _ArrayDisplay($str)
EndIf

 楼主| 发表于 2011-1-20 15:53:34 | 显示全部楼层
回复 10# 3mile


    非常谢谢,不过,这样得到结果,只要是有超连接的文字都获取到了。如图,
我要的结果只是商品名称。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-1-20 16:32:18 | 显示全部楼层
回复 11# Netfox

纯体力活儿! 用10楼3G的代码,更换下表达式。

(?<=title=")([(?:戴尔)(?:DELL)][^\h]+\h*[^\h\(三]+).+?target="

评分

参与人数 1金钱 +20 收起 理由
3mile + 20 精彩

查看全部评分

发表于 2011-1-20 19:50:38 | 显示全部楼层
好几种方法都可以实现哦
发表于 2011-1-20 19:59:05 | 显示全部楼层
如果只是要用到一次那就别人帮你写个
不过看你的需求 应该不会只用一次 还是自己学点基础的正则吧
这样别人给了正则自己也能修修改改
发表于 2011-1-20 20:15:43 | 显示全部楼层
10楼的没有广谱性,仅是特定页面的特例。换成如下:(但不适用楼主本意)

#include <array.au3>
#include <INet.au3>
$urlsource=_INetGetSource ( "http://www.it-hztc.com/product.asp?tid=452" )
;~ MsgBox(0, '', $urlsource)
If Not @error Then
        $str=StringRegExp($urlsource,'\<[Aa].*\>(.*?)(?=\<\/[Aa]\>)',3);;;;<a\></a>或者<A\></A>
        _ArrayDisplay($str)
EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 21:25 , Processed in 0.115893 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表