Задать вопрос
Antonchik
@Antonchik
Программирую на HTML

Как найти все запятые кроме тех что в кавычках?

Добрый день.

Есть такой текст: 1,',',2,'text','word, word2'
Как можно найти все запятые в этом тексте, кроме тех что в одиночных кавычках?
  • Вопрос задан
  • 324 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
dollar
@dollar
Делай добро и бросай его в воду.
По-разному, зависит от среды/языка, где регулярные выражения выполняются.
Обычно в несколько этапов, и даже не всегда рег. выражения нужны/подходят.

При использовании же именно рег. выражений желательно опираться на какие-то конкретные условия (например, не более одной запятой внутри кавычек). В общем виде это будет уже парсер, а не регулярка. Но даже парсеру придётся определиться с условиями, иначе в общем виде нужно будет уметь разбирать и такое:
,1, ','_,2,'text',x'word, ''\'\\word2'

найти все запятые в этом тексте, кроме тех что в одиночных кавычках

В таком виде решается просто, если условиться, что нет избытка кавычек, экранированных кавычек и прочей дичи:
(?:[^,']*'[^']*'[^,']*|[^,']*)(,)(?:[^,']*'[^']*'[^,']*|[^,']*)

https://regex101.com/r/h1A6ZP/1
Все внешние запятые будут в первой группе (зелёные на regex101).

Но если возможна дичь, то придётся изобретать комбайн или отказаться от регулярок.
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы