Я пытаюсь сопоставить всю строку с двойными кавычками, разделенными запятой Например, в строке образца
"COUNT","count(1)","crmuser.accounts"
я хочу соответствовать
COUNT
count(1)
crmuser.accounts
Регулярное выражение (?< = ").*?(? = ") также соответствует разделителю-запятой, который не требуется. Как я могу исключить запятые в строке.
да запятая может стоять в двойных кавычках
Вы можете использовать группу захвата вместо поиска "(.*?)"демо Поскольку утверждения не используют символ, они также действительны для "," соответствия запятой.
Но "(.*?)" включит " в матч, чего мне не нужно. Мне просто нужна строка внутри двойных кавычек.
Он будет соответствовать ему, но ваше значение находится в группе захвата (которая имеет зеленый цвет) regex101.com/r/uzzGVF/1
...is matching the comma seperator as well нет, это не так. Это не соответствует этим запятым.
Или используйте "([^"]+)", чтобы захватить группу, соответствующую не двойной кавычке.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть несколько различных обходных путей, которые вы можете использовать для этого; например, используя группы захвата, как предложено в комментариях Четвертой птицы. Но лично я стараюсь избегать использования .*.
Для примера типа это я бы искренне рекомендовал просто использовать набор допустимых символов, который вы будете использовать, и искать более одного символа (2 или более), потому что вы фактически пропустите одиночные разделители, такие как один ,. Вы даже можете добавить запятую к этому набору символов, и он все равно будет работать.
(?< = ")[\w\(\)\.,]{2,}(? = ")
Вам не нужно избегать круглых скобок и точек в классе символов. \w также соответствует \d, поэтому я думаю, вы могли бы написать это как [\w().] Как упомянул OP, также может присутствовать запятая, вы также можете использовать [\w().,]
@Thefourthbird Вам не обязательно, но я не уверен в том, что принято, а что нет во всех парсерах регулярных выражений, поэтому я вставил их на всякий случай. И да, я уже упоминал запятую.
Для этого формата строки вы можете просто использовать:
var str = '"COUNT","count(1)","crmuser.accounts"' ;
var separated = str.split('","') ;
for(var i in separated){
i.replace('"','') ;
} ;
Я хотел регулярное выражение для того же самого, а не программу. Спасибо за ответ в любом случае.
Может ли быть запятая между двойными кавычками?