【已解决】请问StringInStr能不能一次匹配多个?
本帖最后由 229989799 于 2020-2-26 14:03 编辑今年报名有300个运动员人名。我知道去年参赛的选手8个人名字,,我想匹配一下这8个人在不在300个运动员里面。
用StringInStr我要匹配8次才能确定他们在不在里面。。有没有什么办法写一条代码就能匹配8个人有没在呢?
$file = FileOpen("c:\a.txt")
$read = FileRead($file)
FileClose($file)
$pipei = StringInStr($read,"张子文")
If $pipei > 0 Then
MsgBox(0,"","他在300人名单内")
Else
MsgBox(0,"","他没参加!")
EndIf这样一次只能匹配1人。水平有限呀。
感觉正则应该可以做到,可惜不懂正则。 麻烦指点一下方法
已解决,方法请看后面版主回复。
229989799 发表于 2020-2-26 13:38
$file = FileOpen("c:\a.txt")
$read = FileRead($file)
FileClose($file)
Local $sLst = '李梓强|王宇天|邹子豪|陆伟|刘乐明|龚强|涂文文|刁喜'
$pipei = StringRegExp($read, $sLst, 3)
Local $ii, $sYes = '', $sNo = ''
For $ii = 0 To UBound($pipei) - 1
$sYes &= $pipei[$ii] & '|'
Next
$sYes = StringTrimRight($sYes, 1)
$sNo = StringRegExpReplace($sLst, $sYes, '')
$sNo = StringRegExpReplace($sNo, '\|{2,}', '|')
MsgBox(0, UBound($pipei) & ' 人参加了比赛', '参加了比赛的人员: ' & $sYes & @LF & '未参加比赛的人员: ' & $sNo) 把8个人名用“|”连接后正则
$aName = StringRegExp($read, '张三|李四|麻子', 3) afan 发表于 2020-2-26 13:09
把8个人名用“|”连接后正则
$aName = StringRegExp($read, '张三|李四|麻子', 3)
多谢afan版主,:face (1): 本帖最后由 229989799 于 2020-2-26 13:41 编辑
afan 发表于 2020-2-26 13:09
把8个人名用“|”连接后正则
$aName = StringRegExp($read, '张三|李四|麻子', 3)<div class="blockcode"><blockquote>$file = FileOpen("c:\a.txt")
$read = FileRead($file)
FileClose($file)
$pipei = StringRegExp($read,'李梓强|王宇天|邹子豪|陆伟|刘乐明|龚强|涂文文|刁喜', 3)
MsgBox(0,"",UBound($pipei)& " 人参加了比赛")
;对正则不懂,只知道有4人参赛;如何区分或者分辨出哪几人参加了,哪几人没参加呢?
页:
[1]