Как я могу использовать функцию регулярного выражения в Google Sheets для получения текста и чисел, содержащихся в кавычках - PullRequest
0 голосов
/ 07 декабря 2018

Моя строка в G14

a:2:{i:0;a:2:{s:10:"Store Name";s:12:"FIRST CHOICE";s:12:"Amount Spent";s:2:"50";}i:1;a:2:{s:10:"Store Name";s:13:"SECOND CHOICE";s:12:"Amount Spent";s:3:"100";}}

Мне нужно извлечь как названия магазинов, так и потраченные суммы.т.е. "ПЕРВЫЙ ВЫБОР" "50" "ВТОРОЙ ВЫБОР" "100" В настоящее время я могу извлечь текст, используя

=trim(regexreplace(REGEXREPLACE(G14,"\b\w[^A-Z]*\b"," "),"\W+"," "))

Но все, что я попробую, не извлечет и цифры.

1 Ответ

0 голосов
/ 07 декабря 2018

Как насчет этого ответа?Я думаю, что есть несколько ответов для вашей ситуации.Поэтому, пожалуйста, думайте об этом ответе как об одном из них.

В этих шаблонах предполагается, что a:2:{i:0;a:2:{s:10:"Store Name";s:12:"FIRST CHOICE";s:12:"Amount Spent";s:2:"50";}i:1;a:2:{s:10:"Store Name";s:13:"SECOND CHOICE";s:12:"Amount Spent";s:3:"100";}} заключено в "G14".

Шаблон 1:

=JOIN(",",ARRAYFORMULA(TRIM(SUBSTITUTE(REGEXEXTRACT(G14,REGEXREPLACE(G14,"(""[A-Z0-9 ]+"")","($1)")),"""",""))))
  1. Используя REGEXREPLACE(), он включает "FIRST CHOICE", "50", "SECOND CHOICE" и "100" на ().
  2. Используя REGEXEXTRACT(), он получает "FIRST CHOICE", "50", "SECOND CHOICE" и "100" от исходного значения.
  3. Удалить ".
  4. Join.

Pattern 2:

=SUBSTITUTE(TEXTJOIN(",",TRUE,IFERROR(ARRAYFORMULA(TRIM(REGEXEXTRACT(SPLIT(G14,";"),"""[A-Z 0-9]+"""))))),"""","")
  1. Используя SPLIT(), он разделяет исходное значение на ;.
  2. Используя REGEXEXTRACT(), он получает "FIRST CHOICE", "50", "SECOND CHOICE" и "100".В это время он удаляет #N/A, используя IFERROR().
  3. Используя TEXTJOIN(), он присоединяется к массиву, полученному с помощью REGEXEXTRACT().
  4. Remove ".

Результат:

Оба результата одинаковы.

enter image description here

Ссылки:

Если я неправильно понимаю ваш вопрос, скажи пожалуйста.Я хотел бы изменить его.

...