第二场比赛后需要更换一切

时间:2010-04-02 04:37:07

标签: javascript regex

好的,如果我有这种模式:

ab&bc&cd&de&ef

我需要用逗号替换除第一个以外的所有&符号,所以最终看起来像这样:

ab&bc,cd,de,ef

它可能非常简单,但对于我的生活,我无法理解这一点......

3 个答案:

答案 0 :(得分:3)

这并不容易,因为JavaScript不会做后卫。

尝试

result = subject.replace(/(^(?:[^&]+&[^&]+)|[^&]+)&/g, "$1,");

说明:

(将以下内容捕获到反向引用$1

^(?:[^&]+&[^&]+)字符串开头,后跟两个以&符号分隔的字段

|

[^&]+一个字段(字段是一个或多个非符号字符)。

)结束捕获组

&匹配&符号。

这样,在比赛中将跳过第一个&符号。如果您需要处理空字段,请使用

(^(?:[^&]*&[^&]*)|[^&]*)&

答案 1 :(得分:0)

为什么不在&

上拆分原始字符串

加入piece1piece2,.... pieceN,

使用piece0

加入&上面的结果

答案 2 :(得分:0)

[^&]{2}&([^&]{2}&)*

无法帮助您使用javascript部分,但也许这会有帮助吗?