filter -n ""function(file) { return file.owner == "john"; }""
應該被解析成下面的數組:如何使用正則表達式和javascript分裂以下命令到令牌:
[ 'filter',
'-n',
'function(file) { return file.owner == "john"; }' ]
filter -n ""function(file) { return file.owner == "john"; }""
應該被解析成下面的數組:如何使用正則表達式和javascript分裂以下命令到令牌:
[ 'filter',
'-n',
'function(file) { return file.owner == "john"; }' ]
我不完全知道你想怎麼處理雙引號。你是否還希望能夠在每一端都只用一個雙引號來處理字符串,還是引號總是加倍?
var string = 'filter -n ""function(file) { return file.owner == "john"; }""';
var regex = /([^"\s]+)|""(.*?)""/g;
var match;
var result = [];
while (match = regex.exec(string)) {
result.push(match[1] || match[2]);
}
alert(result);
結果:
filter,-n,function(file) { return file.owner == "john"; }
不可能單獨正則表達式。編寫一個解析器。 – Tomalak 2010-09-25 21:56:21
如何使用超強膠水裝飾這幅畫?是否有一個特定的原因,你想使用正則表達式,這不是他最好的工具。 – Turtle 2010-09-25 22:19:21
@Tomalak對於一個足夠特殊的「常規」表達式... ;-) – 2010-09-25 22:27:29