代码之家  ›  专栏  ›  技术社区  ›  Rahul

用“na”替换以逗号分隔的空字段的正则表达式

  •  1
  • Rahul  · 技术社区  · 16 年前

    我有一个逗号分隔的字符串列表,如下所示。

    a,b   ,c ,d, ,      , , ,e, f,g,h  .
    

    我想编写一个正则表达式,它将替换空值,即只包含空格的字符串为“na”。所以结果应该是

    a,b   ,c ,d,NA,NA,NA,NA,e, f,g,h  .
    

    我尝试使用“、\s+”进行搜索,但它跳过了可选的空字符串,并导致

    a,b   ,c ,d,NA,      ,NA, ,e, f,g,h  .
    

    这里正确使用的regex是什么?

    2 回复  |  直到 13 年前
        1
  •  5
  •   Greg    16 年前

    (?<=,)\s+(?=,)

    这是查找逗号,然后是空格,然后是查找逗号

        2
  •  0
  •   MrM    16 年前

    给你:

    回声A,B,C,D,,,E,F,G,H。| perl-p-e's/,+[^a-z a-z]/,不适用

    或:

    回声A,B,C,D,,,E,F,G,H。| perl-p-e's/,+\s/,na/g'

    如果您想让它也可以与非a-z字符一起使用(感谢您的评论:)