aqtd 发表于 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)

afan 发表于 2020-3-27 19:54:06

Local $sString = "查询条件姓名:身份证号码:查询全国学籍号:验证码:重置查询须知:(1)学生姓名必需填写;(2)全国学籍号和身份证件号至少填写一个;查询结果学籍信息姓名:身份证号码:全国学籍号:学籍所在省:所在学段:就读状态:所在年级:是否问题学籍:最新学籍变动时间:学籍信息姓名:蒲*身份证号码:500**********4877X全国学籍号:G500**********4877X学籍所在省:重庆所在学段:小学就读状态:在校所在年级:小学2019级是否问题学籍:查重无问题最新学籍变动时间:2019100814:06:33提示正在进行学籍查询,请等待...确定是否取消"
Local $aSRE = StringRegExp($sString, '号:(.{18})', 3)
If Not @error Then MsgBox(0, '', $aSRE)

floor6ggg 发表于 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), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE))

afan 发表于 2020-3-28 20:02:58

发帖请勿带“身 份 证”关键字,否则发帖回帖都要审核,麻烦

aqtd 发表于 2020-3-30 08:35:33

afan 发表于 2020-3-28 20:02
发帖请勿带“身 份 证”关键字,否则发帖回帖都要审核,麻烦

感谢A版的回复和提醒

aqtd 发表于 2020-3-30 08:37:50

floor6ggg 发表于 2020-3-27 23:48


感谢回复,代码有局限性,只能取最后一个是X的
问一下,Au3.REHelper是A版的吗,我也下了怎么没生生成代码这个功能

floor6ggg 发表于 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.*?)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE))

floor6ggg 发表于 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.*?)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE))

floor6ggg 发表于 2020-3-30 09:07:38

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

可以看看A大的详细说明…………
页: [1]
查看完整版本: 【已解决】求正则匹配 字符串