字符串处理 【已解决】
本帖最后由 haodd 于 2010-8-29 12:00 编辑类似字符串
FAJ8593
JONasd132
JAm4632
求数字出现的位置 或者 只打印出字母
上一问已经 由2 3楼解决
下一问
FAJ8593
JONasd132
JAm4632
把字母 和 数字 分别放到数组
dim $array[]
使得 $array = 字母
$array = 数字 本帖最后由 afan 于 2010-8-28 15:11 编辑
$str = 'FAJ8593'
ConsoleWrite(StringRegExpReplace($str, '\d+.*', '')& @LF)
本帖最后由 水木子 于 2010-8-28 15:11 编辑
去掉所有数字!$sText = 'FAJ8593' & @CRLF & _
'JONasd132' & @CRLF & _
'JAm4632'
$sReg = StringRegExpReplace($sText, '\d', '')
MsgBox(0, '', $sReg) 两种方法都学习了~
猜想\d+.*比\d快~
\d+.*匹配的是连续的数字字符。\d只匹配单个数字字符,相应的替换次数也就多了。
猜的。 StringRegExp前面只想到这个 呵呵都是正解谢谢! 都是正则强人,反应太快了 回复 4# pusofalse
是啊!从效率方面来看,\d+ 应该是比\d效率更高。
大师看问题永远都是那么尖锐啊! {:face (300):} 奇怪。为什么用for要这样才成功
$a = "FAJ8593"& _
"JONasd132"& _
"JAm4632"
MsgBox(0,"", $a)
For $i = 0 to 9
$a = StringReplace($a,""&$i&"","")
Next
MsgBox(0,"", $a)
回复 1# haodd
LZ第二个问题另外开贴吧。 (.+?)(\d+) 我发誓今天开始学正则
$a = "FAJ8593"& @CRLF & _
"JONasd132"& @CRLF & _
"JAm4632"
dim $b=$a
For $i = 0 to 9
$a = StringReplace($a,""&$i&"","")
Next
MsgBox(0,"", $a)
$c = "abcdefghijklmnopqrstuvwxyz"
do
$d = StringLeft($c, 1)
$b = StringReplace($b,""&$d&"","")
$c = StringTrimLeft($c, 1)
Until StringLen($c) < 1
MsgBox(0,"", $b)
#include <Array.au3>
dim $f
$f = $a
$f = $b
_ArrayDisplay($f)
本帖最后由 C.L 于 2010-8-28 16:35 编辑
回复 11# xsjtxy
弄得太复杂了吧?
每二个问题,一个数组可以搞定
#include <array.au3>
$str = "FAJ8593"& "JONasd132"&"JAm4632"
$array = StringRegExp($str, '(.*?)(\d+)', 3)
_ArrayDisplay ($array)
或者分开数组:#include <array.au3>
$str = "FAJ8593"& "JONasd132"&"JAm4632"
$array = StringRegExp($str, '([[:alpha:]]+)', 3)
$array1 = StringRegExp($str, '([[:digit:]]+)', 3)
_ArrayDisplay ($array,"字母")
_ArrayDisplay ($array1,"数字") #include <array.au3>
$a = "FAJ8593"& @CRLF & _
"JONasd132"& @CRLF & _
"JAm4632"
$array = StringRegExp($a, '(.+?)(\d+)', 3)
_ArrayDisplay ($array) 嗯嗯谢谢大家了
页:
[1]