87,920
社区成员
发帖
与我相关
我的任务
分享
(".+?"|.+?)(?:\s+|$)
Private Sub demo()
Dim strData$
Dim reg As Object
Dim matches As Object, match As Object
strData = "r ""c:\Program Files\aa.txt"" ""c:\bb.txt"" QQ qq"
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.IgnoreCase = True
reg.Pattern = "("".+?""|.+?)(?:\s+|$)"
Set matches = reg.Execute(strData)
For Each match In matches
Debug.Print match.SubMatches(0)
Next
End Sub
<script type="text/javascript">
<!--
var result=[];
var str = '-r "c:\\Program Files\\aa.txt" "MM mm" c:\\bb.txt QQ qq';
str=str.replace(/([ ]*[^ "]+[ ]*)|("[^"]+")/gi,function(val){
result.push(val.replace(/^[ "]+|[ "]+$/gi,""));
});
alert(result);
//-->
</script>
不是分离不分离 这里稍微麻烦点的就是 " "中间的空格给排除掉
var getV=function(str) {
str=str.split(' ');
for(var i=0,res=[];i<str.length;i++) {
var cur=str[i];
if(cur)
res.push(cur);
}
return res;
}
var str="-r c:\aa.txt c:\bb.txt QQ qq ";
alert(getV(str));
<script type="text/javascript">
<!--
var str = '-r "c:\Program Files\aa.txt" c:\\bb.txt QQ qq';
str = str.split(/\s+(?!\w.*\")/);
alert(str);
//-->
</script>