正则表达式,用于匹配不带逗号的空格

问题描述 投票:1回答:7

我需要转换这样的字符串:

tag, tag2, longer tag, tag3

至:

tag, tag2, longer-tag, tag3

为简短起见,我需要将连字符前面没有逗号的空格替换为连字符,并且我需要在Javascript中执行此操作

javascript regex
7个回答
5
投票

我认为这应该起作用

var re = new RegExp("([^,\s])\s+" "g");
var result = tagString.replace(re, "$1-");

编辑:在Blixt观察后更新。


3
投票

mystring.replace(/([^,])\s+/i "$1-");有一种更好的方法,但是我永远不记得语法


1
投票

[^,] =非逗号

Edit抱歉,之前没有注意到替换。我现在更新了答案:

var exp = new RegExp("([^,]) ");
tags = tags.replace(exp, "$1-");

0
投票
text.replace(/([^,]) /, '$1-');

0
投票

[不幸的是,Javascript似乎不支持负面的回溯,所以您必须使用类似的东西(从here修改):

var output = 'tag, tag2, longer tag, tag3'.replace(/(,)?t/g, function($0, $1){
    return $1 ? $0 : '-';
});

0
投票

[^,]-第一个字符不是逗号,第二个字符是空格,并且它搜索那种字符串


-2
投票
([a-zA-Z] ){1,}

也许?未经测试。这样的东西。

© www.soinside.com 2019 - 2024. All rights reserved.