回复 13# tryhi
如果只是不要循环的话,用个另类的方法:
#include <array.au3>
$x1 = 'aaABCDEFG';用来搜索的字符串1
$x2 = 'aaaaaaabbbbbbbABCDFG';用来搜索的字符串2
$c = "D E FG";检索的字符
MsgBox(0, 0, qq($x1, $c));测试
MsgBox(0, 0, qq($x2, $c));测试
Func qq($a, $b)
$c1 = StringSplit($b, ' ')
$number = StringLen($a) - StringLen(StringStripWS($b, 8))
$b = '(?i)' & _ArrayToString($c1, '|', 1)
$temp = StringLen(StringRegExpReplace($a, $b, ''))
If $temp > $number Then
Return False
Else
Return True
EndIf
EndFunc ;==>qq
在一个正则内估计不可能。。。
因为你要顺序可颠倒,空格可有可无。而且还要全匹配。 本帖最后由 afan 于 2010-11-23 02:37 编辑
这个估计还是 循环用 StringInStr() 判断比较简单,正则反倒麻烦了,还需转义字符等。
MsgBox(0, 0, _SsCK('ABCDEFG', 'D A E'))
MsgBox(0, 0, _SsCK('ABCDFG', 'D A E'))
Func _SsCK($Str_y, $str_s)
Local $sR = StringRegExp($str_s, '\H+', 3)
For $i = 0 To UBound($sR) - 1
If Not StringInStr($Str_y, $sR[$i]) Then Return False
Next
Return True
EndFunc ;==>_SsCK 感谢楼上以及楼上的所有朋友,我明白了,这个题还是用for比较实际点 学习了!谢谢各位兄弟!
页:
1
[2]