如何在正则表达式中替换除“a b”内部空格以外的所有空格?

4
我该如何将所有空格字符替换为字母“_”,但不包括字符“a”和“b”之间的空格,例如“a b”这样的情况。
// this is what I have so far to save someone time (that's a joke)
var result:String = string.replace(/ /g, "_");

哦,这是JavaScript编写的。

2个回答

4
请使用以下内容:
var result:String = string.replace(/([^a]) | ([^b])/g, "$1_$2");

以上的简化说明是,它替换了一个空格,该空格要么: 1.前面是除 a 以外的字符 2.后面是除 b 以外的字符
注意:为了统一正则表达式并包括制表符和换行符,请使用 \s,如下所示:
var result:String = string.replace(/([^a])\s|\s([^b])/g, "$1_$2");

2

尝试使用这个正则表达式:

/(?!a)\s(?!b)/g

编辑:正如KendallFrey指出的那样,这并不是最好的解决方案。


这是错误的。它只替换不跟随 b 的空格。(?!a) 没有任何作用。 - Kendall Frey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接