Регулярное выражение, соответствует одному символу, которого нет в шаблоне - PullRequest
0 голосов
/ 29 мая 2020

im парсинг CSV-файла с помощью javascript, этот файл стилизует ячейки с запятыми в пронумерованных значениях. при разборе его до javascript я получаю всю строку как одну строку, в которой ячейки разделены запятыми, как таковые:

2, some text,9740127,"₪ 38,850.00","₪ 5,550.00","₪ 28,305","₪ 4,995",22/05/2020

, чтобы проанализировать файлы и создать объект из каждой строки, которая мне нужна чтобы сопоставить запятые, которые не являются частью числа, поэтому конечный результат:

2
some text
9740127
₪ 38,850.00
₪ 5,550.00
₪ 28,305
₪ 4,995
22/05/2020

Я попытался сопоставить запятые внутри чисел в надежде впоследствии отменить это с помощью этого регулярного выражения: (".\s\d+,\d+[.]?[\d]+") но я Похоже, потом не могу нацелиться на другие запятые. Спасибо

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Предполагая, что двойные кавычки имеют правильный формат, одним из вариантов может быть разделение на запятую, в то время как утверждение, что справа не ", за которым следует запятая или конец строки.

, *(?!(?:[^"]|\\")*"(?:,|$))

Демо Regex

let str = '2, some text,9740127,"₪ 38,850.00","₪ 5,550.00","₪ 28,305","₪ 4,995",22/05/2020'

console.log(str.split(/, *(?!(?:[^"]|\\")*"(?:,|$))/g));
0 голосов
/ 29 мая 2020

Вы можете использовать метод Javascript .split() для вашего варианта использования.

var mystring = '2, some text,9740127,"₪ 38,850.00","₪ 5,550.00","₪ 28,305","₪ 4,995",22/05/2020';
var splitStringArray = mystring.split(",");
    
for(var i = 0; i < splitStringArray.length; i++) {
  console.log(splitStringArray[i]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...