好的,如果我有这种模式:
ab&bc&cd&de&ef
我需要用逗号替换除第一个以外的所有&符号,所以最终看起来像这样:
ab&bc,cd,de,ef
它可能非常简单,但对于我的生活,我无法理解这一点......
答案 0 :(得分:3)
这并不容易,因为JavaScript不会做后卫。
尝试
result = subject.replace(/(^(?:[^&]+&[^&]+)|[^&]+)&/g, "$1,");
说明:
(
将以下内容捕获到反向引用$1
:
^(?:[^&]+&[^&]+)
字符串开头,后跟两个以&符号分隔的字段
|
或
[^&]+
一个字段(字段是一个或多个非符号字符)。
)
结束捕获组
&
匹配&符号。
这样,在比赛中将跳过第一个&符号。如果您需要处理空字段,请使用
(^(?:[^&]*&[^&]*)|[^&]*)&
答案 1 :(得分:0)
为什么不在&
加入piece1
,piece2
,.... pieceN
加,
使用piece0
&
上面的结果
答案 2 :(得分:0)
[^&]{2}&([^&]{2}&)*
无法帮助您使用javascript部分,但也许这会有帮助吗?