找回密码
 加入
搜索
查看: 1901|回复: 8

[AU3基础] 【已解决】求正则匹配 字符串

[复制链接]
发表于 2020-3-26 11:12:47 | 显示全部楼层 |阅读模式
本帖最后由 aqtd 于 2020-3-30 08:48 编辑

不会正则,求助取出下列文本中的全国学籍号→→G500**********4877X     有的是L
我的笨方法
#include <MsgBoxConstants.au3>
Local $sString = "查询条件姓名:身号码:查询全国学籍号:验证码:重置查询须知:(1)学生姓名必需填写;(2)全国学籍号和份身件号至少填写一个;查询结果学籍信息姓名:身号码:全国学籍号:学籍所在省:所在学段:就读状态:所在年级:是否问题学籍:最新学籍变动时间:学籍信息姓名:蒲*身号码:500**********4877X全国学籍号:G500**********4877X学籍所在省:重庆所在学段:小学就读状态:在校所在年级:小学是否问题学籍:查重无问题最新学籍变动时间:2019100814:06:33提示正在进行学籍查询,请等待...确定是否取消"
Local $n = StringInStr($sString,"号:G")
     If $n = 0 Then $n = StringInStr($sString,"号:L")
Local $txt = StringMid($sString,$n+2,"19")
MsgBox($MB_SYSTEMMODAL, "", "全国学籍号: " & $txt)

发表于 2020-3-27 19:54:06 | 显示全部楼层
Local $sString = "查询条件姓名:身份证号码:查询全国学籍号:验证码:重置查询须知:(1)学生姓名必需填写;(2)全国学籍号和身份证件号至少填写一个;查询结果学籍信息姓名:身份证号码:全国学籍号:学籍所在省:所在学段:就读状态:所在年级:是否问题学籍:最新学籍变动时间:学籍信息姓名:蒲*身份证号码:500**********4877X全国学籍号:G500**********4877X学籍所在省:重庆所在学段:小学就读状态:在校所在年级:小学2019级是否问题学籍:查重无问题最新学籍变动时间:2019100814:06:33提示正在进行学籍查询,请等待...确定是否取消"
Local $aSRE = StringRegExp($sString, '号:([GL].{18})', 3)
If Not @error Then MsgBox(0, '', $aSRE[0])
发表于 2020-3-27 23:48:55 | 显示全部楼层
### 友情提示:本脚本由 Au3.REHelper 于 2020/03/27 23:47 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = '查询条件姓名:身份证号码:查询全国学籍号:验证码:重置查询须知:(1)学生姓名必需填写;(2)全国学籍号和身份证件号至少填写一个;查询结果学籍信息姓名:身份证号码:全国学籍号:学籍所在省:所在学段:就读状态:所在年级:是否问题学籍:最新学籍变动时间:学籍信息姓名:蒲*身份证号码:500**********4877X全国学籍号:G500**********4877X学籍所在省:重庆所在学段:小学就读状态:在校所在年级:小学2019级是否问题学籍:查重无问题最新学籍变动时间:2019100814:06:33提示正在进行学籍查询,请等待...确定是否取消"' & @CRLF & @CRLF
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '号:(G.*X|L)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
发表于 2020-3-28 20:02:58 | 显示全部楼层
发帖请勿带“身 份 证”关键字,否则发帖回帖都要审核,麻烦
 楼主| 发表于 2020-3-30 08:35:33 | 显示全部楼层
afan 发表于 2020-3-28 20:02
发帖请勿带“身 份 证”关键字,否则发帖回帖都要审核,麻烦

感谢A版的回复和提醒
 楼主| 发表于 2020-3-30 08:37:50 | 显示全部楼层

感谢回复,代码有局限性,只能取最后一个是X的
问一下,Au3.REHelper是A版的吗,我也下了怎么没生生成代码这个功能
发表于 2020-3-30 09:04:18 | 显示全部楼层
aqtd 发表于 2020-3-30 08:37
感谢回复,代码有局限性,只能取最后一个是X的
问一下,Au3.REHelper是A版的吗,我也下了怎么没生生成代 ...

失误,忘了测试
### 友情提示:本脚本由 Au3.REHelper 于 2020/03/30 09:02 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = '查询条件姓名:身份证号码:查询全国学籍号:验证码:重置查询须知:(1)学生姓名必需填写;(2)全国学籍号和身份证件号至少填写一个;查询结果学籍信息姓名:身份证号码:全国学籍号:学籍所在省:所在学段:就读状态:所在年级:是否问题学籍:最新学籍变动时间:学籍信息姓名:蒲*身份证号码:500**********4877X全国学籍号:G500**********4877X学籍所在省号:G500**********4877L:重庆所在学段:小学就读状态:在校所在年级:小学2019级是否问题学籍:查重无问题最新学籍变动时间:2019100814:06:33提示正在进行学籍查询,请等待...确定是否取消'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '号:(G.*?[XL])', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
发表于 2020-3-30 09:06:19 | 显示全部楼层
本帖最后由 floor6ggg 于 2020-3-30 09:09 编辑

失误,1.忘了测试   2.又忘了身 份 ......证!!!!!
### 友情提示:本脚本由 Au3.REHelper 于 2020/03/30 09:02 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = '查询条件姓名:sfz号码:查询全国学籍号:验证码:重置查询须知:(1)学生姓名必需填写;(2)全国学籍号和sfz件号至少填写一个;查询结果学籍信息姓名:sfz号码:全国学籍号:学籍所在省:所在学段:就读状态:所在年级:是否问题学籍:最新学籍变动时间:学籍信息姓名:蒲*sfz号码:500**********4877X全国学籍号:G500**********4877X学籍所在省号:G500**********4877L:重庆所在学段:小学就读状态:在校所在年级:小学2019级是否问题学籍:查重无问题最新学籍变动时间:2019100814:06:33提示正在进行学籍查询,请等待...确定是否取消'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '号:(G.*?[XL])', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
发表于 2020-3-30 09:07:38 | 显示全部楼层
aqtd 发表于 2020-3-30 08:37
感谢回复,代码有局限性,只能取最后一个是X的
问一下,Au3.REHelper是A版的吗,我也下了怎么没生生成代 ...

可以看看A大的详细说明…………

本帖子中包含更多资源

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

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 04:02 , Processed in 0.082877 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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