Regex для двойных кавычек не в начале / конце строки или перед / после запятой

0

Примеры данных:

"3610212505","3610212505","Jack is 6'2" tall"

Я ищу, чтобы избежать двойной кавычки, которая появляется после 2 в 6'2 "с шаблоном регулярного выражения в PHP. Эта строка является частью большего CSV файла, который я пытаюсь очистить.

В принципе, любая двойная кавычка:

  • В начале строки
  • В конце строки
  • Предшествующий или после запятой
  • 0
    Используйте парсер CSV и очистите каждую ячейку.
  • 0
    Разве вы не должны избегать " вместо того, чтобы удалить его?
Показать ещё 3 комментария
Теги:

2 ответа

1
Лучший ответ
(?<!^)(?<!,)"(?!$|,)

Попробуйте это. Смотрите демоверсию.

https://regex101.com/r/wZ0iA3/9

$re = "/(?<!^)(?<!,)\"(?!$|,)/im";
$str = "\"3610212505\",\"3610212505\",\"Jack is 6'2\" tall\"";
$subst = "";

$result = preg_replace($re, $subst, $str);
  • 0
    Что делает / im в конце переменной $ re?
  • 1
    @wkm i для игнорирования. m для многострочного. Здесь не очень нужно
1

Что-то вроде

/"(?!(,|$|\w))/
  • (?!(,|$|\w)) Обеспечивает, что " не следует , или $ end of string или \w

Демо-версия Regex

пример

preg_replace("/\"(?!(,|$|\\w))/", "", "\"3610212505\",\"3610212505\",\"Jack is 6'2\" tall\"");
=> "3610212505","3610212505","Jack is 6'2 tall"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню