怎么用关键字把连在一起的词语分开
本帖最后由 xdcysten 于 2010-1-14 20:42 编辑比如返回的字符串是:$s = "CCTVCNNAUTOIT CNMMam15au3"
关键字分别是:
local $str
$str = "Mm"
$str = "am15"
$str = "au3"
$str = "AUTOIT CN"
$str = "CCTV"
$str = "CNN"
$str = "DIRECT TV"
$str = "m TV"
如果字符串里有上面提供的关键字就分别将他们分开,没有的就忽略。
怎么返回一个字符串将上面返回的这些字符串用 | 分开呢, 返回就像是这样:"CCTV| CNN| AUTOIT CN| MM| am15| au3"
———————————————————————————————————————
还有一个问题就是怎么获得文件夹下未知的文件名,比如 c:\1 文件夹下会产生一个未知文件名的 *.bin文件(注:只有一个bin文件)
怎么用表达式返回这个文件的文件名 像这样:"a.bin" 本帖最后由 水木子 于 2010-1-14 09:19 编辑
回复LZ的第一个问题。#include <Array.au3>
local $str
$str = "Mm"
$str = "am15"
$str = "au3"
$str = "AUTOIT CN"
$str = "CCTV"
$str = "CNN"
$str = "DIRECT TV"
$str = "m TV"
MsgBox(0, "合并数组", _ArrayToString($str, '|'))也可以这样写#include <Array.au3>
local $str = ["Mm","am15","au3","AUTOIT CN","CCTV","CNN","DIRECT TV","m TV"]
MsgBox(0, "合并数组", _ArrayToString($str, '|')) 本帖最后由 水木子 于 2010-1-14 09:40 编辑
回复LZ的第二个问题(帮助文档示范)$Path = 'C:'
$search = FileFindFirstFile($Path&'\*.*')
If $search = -1 Then
MsgBox(0, "错误", "没有文件/目录 匹配搜索")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
MsgBox(4096, "文件:", $file)
WEnd
FileClose($search) 可以用 StringReplace() 函数替换啊
比如把 “au3” 替换成 “|au3|”就可以了啊, 如 StringReplace("CCTVCNNAUTOIT CNMMam15au3", "CCTV", " |CCTV| ")
如果要更复杂的,也可以用 正则替换 StringRegExpReplace () 参考下这个例子
http://www.autoitx.com/forum.php?mod=viewthread&tid=12294 本帖最后由 xdcysten 于 2010-1-14 17:44 编辑
可能我表达得不太清楚,我想要的是这样的:
给出的字符串是:$s = "CCTVCNNAUTOIT CNMMam15au3"
最终的字符串变成 $s = "CCTV| CNN| AUTOIT CN| MM| am15| au3" 这是我想要得到的
注意:给出的字符串里是没有关键词"DIRECT TV" 这个的,怎么可以避开"DIRECT TV"这个关键词从而得到"CCTV| CNN| AUTOIT CN| MM| am15| au3"
$str = "Mm"
$str = "am15"
$str = "au3"
$str = "AUTOIT CN"
$str = "CCTV"
$str = "CNN"
$str = "DIRECT TV"
$str = "m TV"
可能AFAN版主的代码能行得通,但本人实在没那功力看得明白,看来还要向各位多多学习。
第二个问题解决了,感谢水木子。 回复 6# xdcysten Local $s = "CCTVCNNAUTOIT CNMMam15au3", $i
Local $str
$str = "Mm"
$str = "am15"
$str = "au3"
$str = "AUTOIT CN"
$str = "CCTV"
$str = "CNN"
$str = "DIRECT TV"
$str = "m TV"
For $i = 0 To UBound($str) - 1
$s = StringRegExpReplace($s, '(?i)' & $str[$i], $str[$i] & '\| ')
Next
$s = StringRegExpReplace($s, '\| $', '')
MsgBox(0, "CCTVCNNAUTOIT CNMMam15au3", $s)
页:
[1]