Захват строки в кавычках в строке через запятую с использованием регулярного выражения - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь сопоставить всю строку с двойными кавычками, разделенными запятой Например, в строке образца

"COUNT","count(1)","crmuser.accounts"

Я хочу соответствовать

COUNT
count(1)
crmuser.accounts

Регулярное выражение (?<=").*?(?=") также соответствует разделителю запятой, что не является обязательным. Как я могу исключить запятые в строке.

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Есть несколько различных способов решения этой проблемы;например, используя группы захвата, как предложено в комментариях Четвертой птицы.Но лично для меня я стараюсь избегать использования .*.

Для этого типа , я бы честно рекомендовал просто использовать набор символов, которые вы будете использовать, и искатьболее одного символа (2 или более), потому что вы будете эффективно пропускать одиночные разделители, такие как один ,.Вы даже можете добавить запятую к этому набору символов, и она все равно будет работать.

(?<=")[\w\(\)\.,]{2,}(?=")

Демо

0 голосов
/ 20 марта 2019

Для этого формата строки вы можете просто использовать:

var str = '"COUNT","count(1)","crmuser.accounts"' ;
var separated = str.split('","') ;
for(var i in separated){
     i.replace('"','') ;
} ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...