与えられた文字列:
rsync -r -t -p -o -g -v --progress --delete -l -H /Users/ken/Library/Application\ Support/Sublime\ Text\ 3/Packages /Users/ken/Google\ Drive/__config-GD/ST3
スペースに一致する正規表現ですが、私が試したスペースをエスケープしました:
まず、エスケープされたスペース(または任意)に一致します。
\\.
http://regex101.com/r/uL0mP8 動作します。
次に、スペースに一致させるために、エスケープされたスペース (または任意) を除外します。
(?!\\.)
http://regex101.com/r/fK3sW9 は機能しません。
コードの何が問題になっていますか? ジャバスクリプト。
ありがとう
編集:
(?<!\\)
http://regex101.com/r/fZ5uP2 wokrs!
負の負の後読みを使用する必要がありました...
EDIT2:
var command0 = `rsync -r -t -p -o -g -v --progress --delete -l -H /Users/ken/Library/Application\ Support/Sublime\ Text\ 3/Packages /Users/ken/Google\ Drive/__config-GD/ST3`;
var regex = new RegExp('(?<!\\)\s')
var commandA = command0.split(regex);
エラー -
Invalid regular expression: /(?<!\\)\s/: Invalid group
おっと、JavaScript での回避策は何ですか??
OK の後読みは、JavaScript ではサポートされていません。http://regex101.com がどのように出力されるのかわかりません 。おそらくサーバー側のPHPまたはその他。
EDIT3:
これは非常にトリッキーでした。私が投稿した完全な作業コードを参照してください。
shell コマンドから child_process.spawn(command, [args], [options]) node.js