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

时间:2008-10-24 11:23:29

标签: regex

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

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  .

这里使用的正确正则表达式是什么?

2 个答案:

答案 0 :(得分:5)

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

这是逗号的后视,然后是空格,然后是逗号的前瞻

答案 1 :(得分:0)

你在这里:

回显a,b,c,d ,,,,, e,f,g,h。 | perl -p -e's /,+ [^ a-z | A-Z] /,Na / g'

或者:

回显a,b,c,d ,,,,, e,f,g,h。 | perl -p -e's /,+ \ S /,Na / g'

如果你想让它也适用于非a-Z字符(感谢评论:)