找回密码
 加入
搜索
楼主: lluxury

[效率算法] 还是正则表达式的问题,定义好两边,取中间的值,(完了,结吧)

 火.. [复制链接]
 楼主| 发表于 2011-4-23 12:03:43 | 显示全部楼层
我贴出来了  ,多lime><b>, 另外可以讲一下思路么,你的代码为什么总是这么短呢,羡慕
发表于 2011-4-23 12:09:10 | 显示全部楼层
stringregexpreplace($str,'<[^>]*>','')
 楼主| 发表于 2011-4-23 12:18:34 | 显示全部楼层
stringregexpreplace($str,']*>','')
3mile 发表于 2011-4-23 12:09



    哥哥能给全一点么,这一条安到我的脚本里,试不出来,我指定过str了
发表于 2011-4-23 12:28:08 | 显示全部楼层
回复 18# lluxury


    StringRegExp ( "字符串", "表达式" [, 标志 ] [, 偏移量 ] ] )


你用的什么标志,我测试了,你说的问题绝对不会出现的
$a='<td width="100%">·08时42分、<font color=#6495ED><b>楼歪歪</b></font> 获得了神兵利器 <font color=lime><b>血刀老祖的血刀</b></font></td>'
$b=StringRegExp($a,'lime><b>([^<]+)',3)
MsgBox(0,"",$b[0])
 楼主| 发表于 2011-4-23 12:36:10 | 显示全部楼层
本帖最后由 lluxury 于 2011-4-23 12:42 编辑

我是在微软的正则工具上测的,可能会有偏差

另我自己也试了一下
$a='<td width="100%">·08时42分、<font color=#6495ED><b>楼歪歪</b></font> 获得了神兵利器 <font color=lime><b>血刀老祖的血刀</b></font></td>'
$b=StringRegExp($a,'lime><b>([^<]+)',3)
MsgBox(0,"",$b[0])
ConsoleWrite($b[0])

输出
血刀老祖的血刀???????+>12:37:59 AutoIT3.exe 完成:[CODE]:0


果然的转码呢,楼上的哥哥可以教我下怎么转码不
网页用的是 gb2312
发表于 2011-4-23 12:47:31 | 显示全部楼层
我无话可说了
        #include <Array.au3>
    #include <INet.au3>
        $s_URL = '把你的网站复制进去'
        $soure = _INetGetSource($s_URL)
        $array = StringRegExp($soure, 'lime><b>([^<]+)', 3)
        _ArrayDisplay ($array)
 楼主| 发表于 2011-4-23 12:57:05 | 显示全部楼层
搞定了,谢谢5173 ,再多说点吧

输出的问号是怎么回事
 楼主| 发表于 2011-4-23 13:04:20 | 显示全部楼层
感谢5173的大力帮忙,我贴自己写的下半段吧^^


$s_URL = '网址'
$soure = _INetGetSource($s_URL)
$array = StringRegExp($soure, 'lime><b>([^<]+)', 3)
FOR $element IN $Array
   
        $sSearch=$element
        xx()
        ;$i=$i+1
Next

_ArrayDisplay($avArray, "二维数组")



;函数部分写好了,差网页部分
Func xx()

For $sColumn =1 To 7
$iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1, 1, $sColumn)
If @error Then
    ;MsgBox(0, "未找到", '"' & $sSearch & '" 找不到搜索列 ' & $sColumn & '.')
Else
    $avArray[$iIndex][$sColumn]="XX"
EndIf
Next

EndFunc
 楼主| 发表于 2011-4-23 13:26:07 | 显示全部楼层
5173的正则自己分析了下,不知道对不对

lime><b>([^<]+)   
意思是:
1lime><b>后面的内容,了一行
2不包括尖括号,重复很多次

<font color=lime><b>血刀老祖的血刀</b></font>
发表于 2011-4-23 13:35:22 | 显示全部楼层
MsgBox(0, "未找到", '"' & $sSearch & '" 找不到搜索列 ' & $sColumn & '.')
光看这句就知道你用AU3不久吧
其实可以这么写
MsgBox(0, "未找到", $sSearch & ' 找不到搜索列 ' & $sColumn)
发表于 2011-4-23 13:47:56 | 显示全部楼层
回复 24# lluxury
$a='<td width="100%">·08时42分、<font color=#6495ED><b>楼歪歪</b></font> 获得了神兵利器 <font color=lime><b>血刀老祖的血刀</b></font></td>'
$b=StringRegExp($a,'lime><b>([^<]+)',3)
ConsoleWrite($b[0]&@CRLF)
[img][/img]
你注意看图
血红色的是你的输出,后面的???跟程序没有什么关系

本帖子中包含更多资源

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

×
 楼主| 发表于 2011-4-23 13:53:00 | 显示全部楼层
回复  lluxury [/img]
你注意看图
血红色的是你的输出,后面的???跟程序没有什么关系
love5173 发表于 2011-4-23 13:47



    有关系的,之前我用这个做字符串,匹配下拉菜单来控件点击,就不生效,后来改用数组才成功的,而且,如果你把血刀老祖的血刀改成一串英文,就不会出来???,也可以正常匹配
 楼主| 发表于 2011-4-23 13:55:54 | 显示全部楼层
MsgBox(0, "未找到", '"' & $sSearch & '" 找不到搜索列 ' & $sColumn & '.')
光看这句就知道你用AU3不久吧 ...
love5173 发表于 2011-4-23 13:35



    呵呵,这个是我抄的,5173你用的是xp系统吧
发表于 2011-4-23 14:05:12 | 显示全部楼层
回复 27# lluxury
发现了,这个函数实在是没用过,即便是帮助文件里面也是有这个东西的
可能是格式控制之类,受学识限制,我帮不了你
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-2 01:40 , Processed in 0.073633 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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