首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配空间但转义空间的正则表达式

匹配空间但转义空间的正则表达式
EN

Stack Overflow用户
提问于 2013-08-06 22:47:04
回答 2查看 1.4K关注 0票数 1

给定字符串: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:

代码语言:javascript
复制
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:

这件事很棘手。请参阅我发布的完整工作代码:

process.spawn(command, [args], [options]) node.js

EN

回答 2

Stack Overflow用户

发布于 2013-08-06 22:54:49

你是否试图匹配所有的空格,不包括你所说的“转义空间”。

你应该能够在消极的情况下做到这一点:

代码语言:javascript
复制
(?<!\\)\s

将匹配没有\前面的任何空格。

使用(?!\\.)\s的第二个正则表达式是使用负前瞻性,搜索空格后没有\(any character),这就是为什么它不能工作。

编辑: Lookbehinds不会在javascript中工作,而是学到了一些新的东西。

票数 1
EN

Stack Overflow用户

发布于 2013-08-06 22:53:54

对于第二种情况,可以使用:(?<!\\)

编辑:我通常不使用javascript,所以我不知道任何快捷方式,所以我认为您可以分两步完成:

  1. 使用以下regex:\\\s执行替换(替换),替换为分号;,如下所示:var newCommand = command0.replace(/\\\s/g, ";");
  2. 然后使用下面的regex:\s执行拆分,如:var result = newCommand.split(/\s/);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18091811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档