无法替换正则表达式中的某些值

时间:2019-10-01 08:41:56

标签: regex

这是我的输入内容

0,0,0,1
1,023,1230,1,0
,1,0,01-09-2018,1,

我想替换长度为1的0和1。其余的将保持不变。

我已经尝试过使用javascript代码,即用“,”作为分隔符分割所有字符串。然后,检查长度为1的字符串,并根据逻辑替换它们。但这是一种繁琐的方法,需要花费大量时间。 我想要一个可以在整个输入中进行替换的正则表达式。

我已经尝试过以下正则表达式:((0|1)(?<=,))|((0|1)(?=,))。但是输出错误

输出如下:

N,N,N,Y
Y,023,1230,Y,N
,Y,N,01-09-2018,Y,

1 个答案:

答案 0 :(得分:0)

您可以将以下正则表达式与逗号边界一起使用:

(?<![^,])1(?![^,])
(?<![^,])0(?![^,])

替换为适当的子字符串。

仅当用逗号或字符串位置的开头/结尾将它们匹配时,它们才与10匹配。

  • (?<![^,])-向后的否定性匹配,其匹配的位置不是紧跟,以外的其他字符之前的位置
  • (?![^,])-否定超前匹配,其匹配的位置不是紧跟,以外的其他字符。