找回密码
 加入
搜索
查看: 1842|回复: 9

[网络通信] 【已解决】不懂正则请afan或者论坛牛人帮下

[复制链接]
发表于 2018-8-20 15:03:23 | 显示全部楼层 |阅读模式
本帖最后由 229989799 于 2018-8-21 14:43 编辑

网页查看源代码后续提取'User_1'>和</span> 之间的内容,如:
'<span id='User_1'>张三</span> 提取后 张三 。
<span id='Mac_1'>11-22-33-44-55-66</span>提取后 11-22-33-44-55-66

因为不懂正则,sorry 。求帮个忙。。请afan或者论坛牛人帮下,不知妥否

方法如下:

Local $sSource = "<span id='User_1'>张三</span>"
MsgBox(0, '源字符串', $sSource) 
Local $aSRE = StringRegExp($sSource, "(?mi)_\d+'>(.+?)<", 1)
MsgBox(0,"提取字符串",$aSRE[0])



再次感谢A版 afan 好像神一样存在我婶婶的脑海里,哈
发表于 2018-8-20 16:39:09 | 显示全部楼层
这个简单,就按你的描述直接取
(?mi)_\d+'>(.+?)<
发表于 2018-8-20 18:36:34 | 显示全部楼层
本帖最后由 yuantian 于 2018-8-20 18:38 编辑
afan 发表于 2018-8-20 16:39
这个简单,就按你的描述直接取

请教AFan,
(?mi)
这个是什么意思??语法里没有发现这个呀?多谢回复。
发表于 2018-8-20 18:43:44 | 显示全部楼层
yuantian 发表于 2018-8-20 18:36
请教AFan,

这个是什么意思??语法里没有发现这个呀?多谢回复。

等同于 (?m)单行匹配 + (?i) 不区分大小写
发表于 2018-8-20 18:45:52 | 显示全部楼层
本帖最后由 yuantian 于 2018-8-20 18:47 编辑
afan 发表于 2018-8-20 18:43
等同于 (?m)单行匹配 + (?i) 不区分大小写

多谢大大,又学习到了新的知识,谢谢。
所以,更全面的正则表达式的学习方式是什么?
我现在看的网页是这里:http://deerchao.net/tutorials/regex/regex.htm
发表于 2018-8-20 18:47:17 | 显示全部楼层
yuantian 发表于 2018-8-20 18:45
多谢大大,又学习到了新的知识,谢谢。
所以,更全面的正则表达式的学习方式是什么?
我现在看的网页是 ...

不客气~              
 楼主| 发表于 2018-8-21 08:44:21 | 显示全部楼层
afan 发表于 2018-8-20 16:39
这个简单,就按你的描述直接取

代码不会用。嘿嘿。。
能否给个例子,比如下面只提取张三
<span id='User_1'>张三</span>
发表于 2018-8-21 09:25:32 | 显示全部楼层
229989799 发表于 2018-8-21 08:44
代码不会用。嘿嘿。。
能否给个例子,比如下面只提取张三
张三
### 友情提示:本脚本由 Au3.REHelper 于 2018/08/21 09:25 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = "<span id='User_1'>张三</span>"
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, "(?mi)_\d+'>(.+?)<", 1)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
 楼主| 发表于 2018-8-21 14:39:56 | 显示全部楼层
本帖最后由 229989799 于 2018-8-21 14:41 编辑

多谢afan热心回答。原来错在了最后输出MsgBox(0,"提取字符串",$aSRE[0])。。,$aSRE后面要加个[0],不加这个就返回是空值了。学习了。。

Local $sSource = "<span id='User_1'>张三</span>"
MsgBox(0, '源字符串', $sSource) 
Local $aSRE = StringRegExp($sSource, "(?mi)_\d+'>(.+?)<", 1)
MsgBox(0,"提取字符串",$aSRE[0])


发表于 2018-8-21 14:41:56 | 显示全部楼层
229989799 发表于 2018-8-21 14:39
多谢afan热心回答。原来,$aSRE后面要加个[0],不加这个就返回是空值了。学习了。。
Local $sSource = " ...

所以我的测试模板有两种方式查看,一种是直接查看元素,需使用下标,一种是查看数组,直接使用变量名
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 12:02 , Processed in 0.073706 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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