king8462 发表于 2017-5-23 11:08:42

[已解决]求高手给个判断是否包含指定字母的正则

本帖最后由 king8462 于 2017-5-23 14:59 编辑

$result变量包含1-3个字母,字母为ABCD中的任意一个且位置不固定(比如BC,DA,CBA,ACD,C等)。需要判断是否包含“A”,“B”,“C”,“D”中的任意一个并返回结果。

求高手写个正则代码,谢谢!

cfwyy 发表于 2017-5-23 11:18:29

{1,3}

king8462 发表于 2017-5-23 11:21:10


cfwyy 发表于 2017-5-23 11:18 http://www.autoitx.com/images/common/back.gif


楼上给的看不懂。

zghwelcome 发表于 2017-5-23 14:32:34

Local $result = 'ACXYZSDEFZ'
Local $sChk = 'ABCD'
$sReg = StringRegExpReplace($result, '[' & StringRegExpReplace($result, '[' & $sChk & ']+', "") & ']+', "")
MsgBox(512,"","包含字符:" & $sReg)

king8462 发表于 2017-5-23 14:58:09

回复 4# zghwelcome


谢谢楼上!

zghwelcome 发表于 2017-5-23 15:28:36

回复 5# king8462
之前的好像写复杂了Local $result = 'ACXYZSDEFZ'
Local $sChk = 'ABCD'
$sReg = StringRegExpReplace($result,'[^' &$sChk&']',"")
MsgBox(512,"","包含字符:" & $sReg)

king8462 发表于 2017-5-23 21:17:59

回复 6# zghwelcome

能不能再帮忙写个:

$result变量包含1-3个字母,字母为ABCD中的任意一个且位置不固定(比如BC,DA,CBA,ACD,C等)。需要返回“A”,“B”,“C”,“D”中不包含的:比如$result=DC 则返回AB ;$result=A则返回BCD。谢谢!

afan 发表于 2017-5-24 14:24:31

回复 7# king8462


    Local $result = 'BC'
;~ Local $result = 'DA'
;~ Local $result = 'CBA'        ;ACD,C
MsgBox(0, $result, _NoSz($result))

Func _NoSz($str, $sPc = 'ABCD')
        Return StringRegExpReplace($sPc, '[' & $str & ']', '')
EndFunc   ;==>_NoSz

king8462 发表于 2017-5-24 15:01:49

回复 8# afan


拜谢A版,正则太强大。
页: [1]
查看完整版本: [已解决]求高手给个判断是否包含指定字母的正则