Регулярное выражение для замены пустых полей, разделенных запятыми, на «NA» - PullRequest
1 голос
/ 24 октября 2008

У меня есть список строк, разделенных запятыми, как показано ниже.

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 ]

5 голосов
/ 24 октября 2008

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

Это запятая для запятой, затем пробел, затем для запятой

0 голосов
/ 24 октября 2008

Вот вы:

эхо a, b, c, d,,,,, e, f, g, h. | perl -p -e 's /, + [^ a-z | A-Z] /, Na / г'

Или:

эхо a, b, c, d,,,,, e, f, g, h. | perl -p -e 's /, + \ S /, Na / g'

если вы хотите, чтобы он работал и с не-Z символами (спасибо за комментарий:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...