给定字符串: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
用于匹配空间的regex,但我尝试过的转义空间:
首先,匹配转义空间(或任何空间)。
\\.
http://regex101.com/r/uL0mP8工作。
接下来,要匹配空间,不包括转义空间(或任何空间)。
(?!\\.)
http://regex101.com/r/fK3sW9不起作用。
密码有什么问题吗?javascript。
谢谢
编辑:
(?<!\\) http://regex101.com/r/fZ5uP2醒了!
我应该用负的负查找..。
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的解决办法是什么??
在JavaScript中不支持OK查找。我不知道http://regex101.com如何输出。可能是PHP或服务器端的其他人。
EDIT3:
这件事很棘手。请参阅我发布的完整工作代码:
发布于 2013-08-06 22:54:49
你是否试图匹配所有的空格,不包括你所说的“转义空间”。
你应该能够在消极的情况下做到这一点:
(?<!\\)\s将匹配没有\前面的任何空格。
使用(?!\\.)\s的第二个正则表达式是使用负前瞻性,搜索空格后没有\(any character),这就是为什么它不能工作。
编辑: Lookbehinds不会在javascript中工作,而是学到了一些新的东西。
发布于 2013-08-06 22:53:54
对于第二种情况,可以使用:(?<!\\)
编辑:我通常不使用javascript,所以我不知道任何快捷方式,所以我认为您可以分两步完成:
\\\s执行替换(替换),替换为分号;,如下所示:var newCommand = command0.replace(/\\\s/g, ";");\s执行拆分,如:var result = newCommand.split(/\s/);https://stackoverflow.com/questions/18091811
复制相似问题